2013-01-02 8 views
6

Mam tego formularza z formantu karty i listbox wewnątrz:W jaki sposób można zmienić rozmiar elementów formularza po zmianie rozmiaru okna?

enter image description here

Kiedy rozmiar wysokość tego okna, mam coś takiego:

enter image description here

Jednak ja faktycznie chciał kontroli tabulacji i listbox, aby zmienić rozmiar wzdłuż, mając następujący wynik:

enter image description here

Wierzę, że udało mi się osiągnąć ten efekt, po prostu odpowiadając na jakiś rodzaj metody onResize() w formularzu i wykonuję własne obliczenia, aby ręcznie zaktualizować odpowiednio wielkość kontrolki tabulacji i listbox.

Jednak widziałem wiele aplikacji osiągnąć ten efekt, więc podejrzewam, że nie jest w rzeczywistości lepszym sposobem, aby to zrobić - może się wbudowaną funkcję.

Czy znasz lepszy sposób na uzyskanie tego efektu?

Odpowiedz

8

Oto dobry poradnik, który wyjaśnia, w jaki sposób zmiany rozmiaru formantów winform na zmianę rozmiaru kontrolki formularza kontenera za pomocą doku i kotwica właściwości:

http://www.techrepublic.com/article/manage-winform-controls-using-the-anchor-and-dock-properties/6165908

Ustawianie cztery wartości właściwości zakotwiczenia (góra, prawo , dolny, lewy), możesz sprawić, by krawędzie kontrolne pozostały nieruchome w stosunku do formanta Form, nawet gdy jest on ponownie zmieniany.

+4

Linki nie są odpowiedziami. Oczekuje się, że odpowiedzi na SO będą samodzielne. Proszę [zapoznaj się z tym pytaniem meta] (http://meta.stackexchange.com/q/8231/135887). – Charles

+0

@Charles: Sugerujesz, żebym nie zaakceptował tej odpowiedzi? Co ciekawe, nie musiałem oglądać samouczka (fraza "właściwości kotwicy" zrobiła prawie to samo) – Voldemort

+1

Wymieniłem niezbędne właściwości, które należy zastosować (kotwica i dok), jeśli to nadal nie wystarcza, przepraszam za to . Z czasem zaktualizuję odpowiedź odpowiednimi informacjami. – Cdeez

5

Możesz użyć właściwości kotwicy kontrolki tabulacji - po prostu zakotwicz wszystkie cztery strony.

1

można użyć własności portach zarówno Tab i listbox się wypełnić

0

użyć Dock i Anchor właściwości do kontrolowania jak kontrola składnikiem jest zmieniany, gdy jego rodzic/pojemnik jest zmieniany.

Aby kontrola wypełnić swój pojemnik, wystarczy

theControl.Dock = System.Windows.Forms.DockStyle.Fill 

Aby zachować pewne marginesy, należy ustawić właściwość

theControl.Anchor = CType((System.Windows.Forms.AnchorStyles.Top _ 
    Or System.Windows.Forms.AnchorStyles.Bottom _ 
    Or System.Windows.Forms.AnchorStyles.Left _ 
    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) 

Anchor Można również ustawić te właściwości w oknie narzędzia nieruchomości.

1

To może pomóc:

Private Sub frmMain_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged 'tab container sizechanged event 
     tabMain.Dock = DockStyle.None 'set dock to none to allow resize 
     tabMain.Size = New Size(New Point(3, 3)) ' set size anything you want 
     tabMain.Dock = DockStyle.Fill 'set dock to fill to fit to container 
    End Sub 
+0

Powinieneś wyjaśnić, co tutaj robisz. – wonko79

+0

tabMain to tabControl. frmMain to formularz zawierający tabControl. To proste! – gani

0

aby uzyskać żądane miejsce rezultacie kontrolę, w jaki sposób ma to być w formie standardowej wielkości. następnie użyj właściwości Anchor do góry, dołu, lewej i prawej strony. to pozwala ci określić, że zawsze chcesz, aby formant był względnie umieszczony w formie w oparciu o najmniejszy rozmiar.

tj: Ustaw właściwość kotwica do góra, dół, lewo, prawo to gwarantuje, że Góra, Dół, Lewo, Prawo krawędź kontroli będzie zawsze w tej samej odległości od każdej krawędzi niezależnie od wielkości rodziców.

Jeśli chcesz sterowanie umieszczone w określonej odległości od każdej krawędzi wykorzystania powierzchni kontrola Kotwica góra, dół, lewo, prawo

jeśli chcesz szczyt sterowania i lewa krawędź zablokowana 8 pikseli od górnej i lewej edge of the parent, ustaw Anchor Property na Top, Left control nigdy nie zmieni rozmiaru, zawsze pozostanie w pozycji względnej o wartości 8,8.

+0

Dodanie sformatowanego kodu do twojej odpowiedzi byłoby świetne :) –

0

Kliknij tab 1 lub tab 2 Następnie na stronie w Property Tab szukać nieruchomości Dock. Następnie wybierz jeden w środku lub wpisz pełny.

Albo

Możesz zajrzeć na Anchor i wybierz bottom tab The top tag The right tag i left tag.

Hope This Helped!

Powiązane problemy