Rozdzielczość ekranu/ wielkość okna (form)

0

Witam,
Mam stworzoną aplikacje w C# - okno główne + kilka okien potomnych otwieranych w głównym :)

PROBLEM 1: zrobilem je na monitorze 22 calowym i w dodatku panoramicznym.. okna i kontrolki w nich tak umieszczałem aby wszystko było przejrzyste i się miesciło..........

OTWIERAM aplikacje na mniejaszym monitorze i przy mniejszej rozdzielczosci i mi zmniejsza wielkośc okna głównego i okien potomnych...OBCINAJAC przy tym moje kontrolki ktore byly przy prawej krawedzi.... nie moge takiego pomniejszonego okna przesunac np paskiem przewijania.. po prostu max width = rozdzielczosci monitora i koniec!!! JAK to obejsc.. czy mozna np. ustawic wielkosc okna (szerokosc) > niz rozdzielczosc (np > 1024 przy 1024 w poziomie).. a moze przy zmianie rodzielczosci na mniejsza mozna zrobic jakos aby wszytkiekontrolki sie pomniejszaly/powiekszaly mieszczac sie w calosci na ekranie

PROBLEM 2. Okna potomne otwierają sie w form głównym wypelniajac je w calosci...czy mozna ograniczyc aby okna potomne byly otwierane tylko w danym fragmencie FOrm głównego ( np w umieszczonym kontenerze panel) ????? umieszcaam z lewej menu z zakladkami i nie chce aby perzy max potomnego zostalo zasloniete<font size="3"></span>

0

Problem 1 jest idealnie rozwiazany w WPF ale wnioskuje, ze bawisz sie Windows Form'ami. Mozesz sie bawic w wlasnoreczne skalowanie kontrolek ale... ehm... powodzenia? Ogolnie to tak, rozmiar formy moze byc wiekszy niz rozdzielczosc.

Mozesz jeszcze sprobowac wszystko wrzucic w panel, o ile dobrze pamietam mozna bylo ustawic scrollowanie gdy jego zawartosc sie nie miescila (to by jakotako zalatwialo Twoj problem).

Problem 2. Rozmiar i polozenie okna potomnego mozesz sam kontrolowac. Musisz tylko sie zaczac bawic z wartosciami odnosnie polozenia i wielkosc... ot, matematynka ;) Innym rozwiazaniem jest Stworzenie okna glownego jako pare panelow, a okien potomnych jako user controls'y ktore po prostu by byly ladowane do panelu glownego.

0

hmmm wlasnie rozmiar okna mi w VS blokuje wartoscia maksymalną ktora wynosi prawie tyle co wielkosc rozdzielczosci...jak ustawie wieksza to visual studio automatycznie zmniejszy do tej maksymalnej... scrolowanie wychodzi jesli mam okno pomiejszone..i wtedy przsunie ale i tak okno formy podrzednej i nadrzednej nie jest wieksza hmmm.. .. aha..windows Form's dzialam.

Pyt 2.
user control odpada....są aplikacje gdzie załozmy mamy w oknie głównym (OG) po lewej stronie jakies menu z zakladkami...uruchamiamy jakies okno potomne (OP) i umiesczone jest tak aby nie wchodzilo nad/pod to menu tylko znajdowalo sie w tej przestzrani pozostalej....TAKZE PRZY ZMAKSYMALIZOWANYM OKNIE OP..... u mnie w OG mam tez glowne menu na gorze i jak uruchomie OP (zmaksymalizuje je) to gorma czesc OP wchodzi pod menu w OG

jest tysiace aplikacji na rynku i okna potomne uruchamiaja sie w danej przstrzeni..i nie mozna ich wysunac poza nia..JAK TO ZROBIC?????????????

0

To zachowanie z trzymaniem okien potomnych w głównym to nadaje się dla kontrolki UserControl. Form z definicji może być przemieszczany po całym ekranie. Można też obsłużyć Move na Form i nie pozwalać na wysunięcie poza okno macierzyste, ale po co jeżeli UserControl od razu ma taką właściwość? Tylko wtedy przesuwanie UserControla by trzeba było oprogramować.

Jeżeli chodzi o rozmiar okna w Win Form, do takich rzeczy wymyślono Panele, Splittery, Dokowanie i inne kontrolki kategorii Layout oraz kotwiczenie czyli właściwości Dock i Archon.

0

Dla innych: sprawę rozdzielczości rozwiązałem stosując metodę scale() podczas inicjalizacji form... skaluje utworzone formy wraz z ich "zawartoscia-czyli kontrolki w nim) o podana wartosć ... nie wiem czy to jest eleganckie podejscie ale moze sie przydac gdy chcemy popracowac na innym formacie ekranu:)

pozostale problemy to sam bawilem sie Dockiem i anchorem.. udalo mi sie ze okno przy powieszeniu jest z lewej strony ograniczone panel'em z ustaiwona wartoscia Dock=left ale na gorze tez mam pasek z panela utworonego i przy powiekszeniu niestety jeszcze mi okno wchodzi pod nie hmmm

NOWY PROBLEM: Tworze nowe okno(obiekt) z okna głównego lecz nie nadaje mu Nazwa.MdiParent = this; wiec otwiera mi sie jako zupelnie nowe okno (widoczne na pasku zadan w Windows) -Świetnie op to chodzilo ALE ono jest schowane pod głównym wiec musze za kazdym razem nacikac na pasek zadan widnows aby je poazac,,,,JAK ZROBIC po utworzeniu okna -obiekt.show() byl on na pierwszym miejscu widoczny??? showDialog() odpada ;)

Dziekuje za odpowiedz

0

Widze ze sam tworze posta... KONTRLOKI na formie moge zmienic za pomoca scale wszystko sie skaluje ale nie tekstw label's..BEZ SENSU..jakies pomysly

0

Czekałem aż to napiszesz ;)

0

ok..a ja czekam na podpowiedzi:)...mam formularz bazy danych ( ok 20 parametrów) w dwóch kolumnach...ładnie to poukladalem ze na duzym monitorze wszytko sie miesci i widac przejrzyscie...na mniejszm niestey z polowa ucieka--musze maksymalizowac i pozniej przesiwac scrollem........... scale by zalatwilo sprawe ale te glopie fonty w labelach...jaki na to sposób...zauważcie ze zmieniajac rozdzileczosc ekranu standartowe programy zmieniaja czcionki uzywane wraz z reszta kontrolek.... jak to robia?????????

0

No nie wydaje mi sie by "standardowe programy" cokolwiek masz na mysli zmienialy wielkosc czcionek. Czcionki z reguly mozna zmienic w ustawieniach systemu. mozesz tez recznie przy skalowaniu przejechac przez cala kolekcje label'ow i zmienic im recznie rozmiar. Niestety wiekszosc obecnie tworzonego oprogramowania jest tworzona pod konkretna rozdzielczosc (zakladajac jakas jako minimalna). Jesli jest mniejsza to scroll wchodzi do akcji, tak wiec troche zabawy bedziesz mial by to jakos ladnie obsluzyc :)

0
wasiu napisał(a)

Jesli jest mniejsza to scroll wchodzi do akcji, tak wiec troche zabawy bedziesz mial by to jakos ladnie obsluzyc :)
E tam. Wrzucasz wszusytko do UserControl, UserControl wrzucasz na scrollowaną formę/panel i już.

Ewentualnie MDI: http://www.google.pl/search?q=MDI+C%23

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.