2011-06-24 10 views
10

C# WinForms: Projektuję mój formularz i mam kilka TableLauots. więc zaprojektuję swój pierwszy plan, wyrzucę go na panel i ustawię Dock-> Top ... potem zaprojektuję drugi i zrobię to samo i ustawię Dock-> Top, znowu trafia do góry i dobrze, umieszcza pod poprzednia, która była na górze ... Projektuję trzecią i ustawię jej dock.top i dobrze, że jest pod drugą, która jest pod pierwszą ... ale nie wiem, jakie jest różnice dla czwartej, która po ustawieniu jego dock.top, zmienia kolejność pozostałych trzech i umieszcza je miejscami pomiędzy nimi, nie jest umieszczany pod trzecim ... Jaki jest pomysł, na co powinienem zaglądać?Problem z kolejnością dokowania-> Najważniejsze kontrole

+0

Może mogę użyć dużego układu przepływu i umieścić wszystko w tym, ale często! nie powinno być tak skomplikowane, kto lubi dodać jeszcze jeden kontener do formularza? Dock.Top powinien to zrobić. – Bohn

Odpowiedz

27

To zależy od kolejności dodania kontrolek do ich kontenera. Poprzednim dodanym sterowaniem będzie cylinder i tak dalej ...

Aby to naprawić, "Wytnij" czwartą kontrolkę i "Wklej" ją ponownie do pojemnika, a zajmie to pożądane miejsce.

Innym sposobem naprawy jest modyfikacja kodu pliku projektanta w celu ponownego zamówienia dodania tych kontrolek do ich kontenera.

+6

To naprawdę nie jest dobre podejście. Opcje "Przenieś przód" i "Wyślij w tył" są o wiele lepsze. aby uzyskać więcej informacji, wypróbuj ten link. http://stackoverflow.com/questions/154543/panel-dock-fill-ignoring-other-panel-dock-setting – Adeem

+4

Metoda "Wytnij-wklej" zniszczy wszystkie powiązania wywołania zwrotnego! – GuLearn

+3

Albo jeszcze lepiej, użyj okna "Konspektu dokumentu" i zmień położenie tam kontroli. – Jcl

15

Kliknij prawym przyciskiem myszy formanty i wybierz "Wyślij do tyłu" lub "Przesuń na wierzch" lub użyj okna Konspekt dokumentu, aby zmienić kolejność elementów. Zarys dokumentu bardzo pomaga podczas tworzenia rzeczy WinForm z wieloma kontrolkami.

+0

To powinna być zaakceptowana odpowiedź. Cięcie i wklejanie z pewnością zepsują Twój projekt. –

8

Układ doku jest oparty na kolejności dodawania do kontenera.

I zwykle w pliku * .Designer.cs i modyfikować InitializeComponent() metody ręcznego ponownego kolejności jak kontrole są umieszczane w pojemniku.

this.Controls.Add(this.panel1); 
this.Controls.Add(this.panel4); 
this.Controls.Add(this.panel3); 
this.Controls.Add(this.panel2); 

Ten porządek jest odwrotny na wyświetlaczu

+1

"Ta kolejność jest na wyświetlaczu" należy pogrubić. –

6

Trzeba zorganizować kolejność kontroli w oknie konspektu dokumentu (Widok -> Inne Windows -> Zarys dokumentu (Ctrl + W, U)). Wybierz swój formularz w trybie tworzenia, a zobaczysz wszystkie swoje komponenty w widoku drzewa. Użyj strzałek na górze, aby wybrać żądaną kolejność.

To lepsze rozwiązanie niż cięcie i przeszłość, ponieważ pozwala uniknąć utraty połączeń zwrotnych.

Powiązane problemy