Mam ten formularz, z kontrolką karty i listą w środku:
Kiedy zmieniam wysokość okna, otrzymuję coś takiego:
Jednak tak naprawdę chciałem, aby kontrolka karty i pole listy zmieniały się wraz z następującym wynikiem:
Wierzę, że mógłbym osiągnąć ten efekt, po prostu odpowiadając na jakiś rodzaj onResize()
w formularzu i wykonaj własne obliczenia, aby ręcznie zaktualizować odpowiednio rozmiar kontrolki karty i pola listy.
Jednak widziałem, że wiele aplikacji osiąga ten efekt, więc podejrzewam, że istnieje lepszy sposób na osiągnięcie tego - być może wbudowana funkcja.
Czy znasz lepszy sposób na osiągnięcie tego efektu?
Odpowiedzi:
9 dla odpowiedzi № 1Oto dobry samouczek, który wyjaśnia, jak zmienić rozmiar kontrolek winform przy zmianie rozmiaru kontrolki formularza kontenera przy użyciu właściwości dock i anchor:
Ustawiając cztery wartości właściwości zakotwiczenia (góra, prawo, dół, lewo), możesz sprawić, że krawędzie kontrolki pozostaną nieruchome w odniesieniu do kontrolki Form, nawet jeśli zostanie zmieniona wielkość.
6 dla odpowiedzi nr 2
Możesz użyć właściwości zakotwiczenia kontrolki karty - po prostu zakotwicz wszystkie cztery strony.
1 dla odpowiedzi nr 3
Możesz użyć właściwości Dock zarówno karty, jak i pola listy do wypełnienia
1 dla odpowiedzi nr 4
Może to 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 dla odpowiedzi № 5
Korzystasz z Dock
i Anchor
właściwości, aby kontrolować sposób zmiany rozmiaru formantu składnika, gdy zostanie zmieniony rozmiar jego elementu nadrzędnego / kontenera.
Aby kontrolka wypełniła po prostu jej pojemnik
theControl.Dock = System.Windows.Forms.DockStyle.Fill
Aby zachować pewne marginesy, ustaw Anchor
własność
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)
Właściwości te można również ustawić w oknie narzędzia Właściwości.
0 dla odpowiedzi № 6
Aby uzyskać pożądany rezultat, umieść kontrolę w jaki sposóbchcesz, aby był w standardowym rozmiarze. następnie użyj właściwość Anchor na Top, Bottom, Left, Right. Dzięki temu możesz określić, że chcesz, aby formant był zawsze umieszczony względnie w formularzu na podstawie najmniejszego rozmiaru.
JA.MI: Ustaw właściwość zakotwiczenia na Top, Bottom, Left, Right, co zapewni, że górna, dolna, lewa, prawa krawędź kontrolki będzie zawsze znajdować się w tej samej odległości od każdej krawędzi, niezależnie od rozmiaru nadrzędnego.
Jeśli chcesz, aby kontrolka została umieszczona w określonej odległości od każdej krawędzi powierzchni kontrolnej, użyj opcji Zakotwiczenie do góry, do dołu, do lewej, do prawej
jeśli chcesz zablokować górną i lewą krawędź kontrolną8 pikseli od górnej i lewej krawędzi elementu nadrzędnego, ustaw właściwość Anchor na Top, po lewej kontrolka nigdy nie zmieni rozmiaru, zawsze pozostanie względnie ustawiona na 8,8.
0 dla odpowiedzi № 7
Kliknij tab 1
lub tab 2
Następnie z boku w Property Tab
Spójrz na Dock
własność. Następnie wybierz ten pośrodku lub wpisz pełne.
Lub
Możesz poszukać Anchor
i wybierz bottom tab
, top tag
, right tag
i left tag
.
Mam nadzieję, że to pomogło!