Udostępnij za pośrednictwem


Właściwość AutoSize – Przegląd

Właściwość AutoSize umożliwia kontrolce zmianę rozmiaru w razie potrzeby w celu uzyskania wartości określonej przez właściwość PreferredSize. Dostosowujesz zachowanie określania rozmiaru dla określonych kontrolek, ustawiając właściwość AutoSizeMode.

Funkcja automatycznego dopasowywania rozmiaru

Tylko niektóre kontrolki obsługują właściwość AutoSize. Ponadto niektóre kontrolki obsługujące właściwość AutoSize obsługują również właściwość AutoSizeMode.

Właściwość AutoSize generuje nieco inne zachowanie, w zależności od określonego typu kontrolki i wartości właściwości AutoSizeMode, jeśli właściwość istnieje. W poniższej tabeli opisano zachowania, które są zawsze prawdziwe i zawiera krótki opis każdego z nich:

Zawsze prawdziwe zachowanie Opis
Automatyczne ustalanie rozmiaru jest funkcją wykonywaną w czasie rzeczywistym. Oznacza to, że nigdy nie zwiększa ani nie zmniejsza kontrolki i nie ma dalszego wpływu.
Jeśli kontrolka zmieni rozmiar, wartość jej właściwości Location zawsze pozostaje stała. Gdy zawartość kontrolki powoduje jej wzrost, kontrolka rośnie w prawo i w dół. Kontrolki nie rozszerzają się w lewo.
Właściwości Dock i Anchor są respektowane, gdy AutoSize jest true. Wartość właściwości Location kontrolki jest dostosowywana do poprawnej wartości.

Uwaga Kontrolka Label jest wyjątkiem od tej reguły. Po ustawieniu właściwości AutoSize zadokowanej kontrolki Label na true, kontrolka Label nie będzie się rozciągać.
Właściwości MaximumSize i MinimumSize kontrolki są zawsze respektowane, niezależnie od wartości jej właściwości AutoSize. Właściwości MaximumSize i MinimumSize nie są zależne od właściwości AutoSize.
Domyślnie nie ma ustawionego minimalnego rozmiaru. Oznacza to, że jeśli kontrolka jest ustawiona na zmniejszanie się w AutoSize i nie ma zawartości, wartość jej właściwości Size wynosi 0,0. W takim przypadku kontrolka zmniejszy się do punktu i nie będzie łatwo widoczna.
Jeśli kontrolka nie implementuje metody GetPreferredSize, metoda GetPreferredSize zwraca ostatnią wartość przypisaną do właściwości Size. Oznacza to, że ustawienie AutoSize na true nie będzie miało wpływu.
Element sterujący w komórce TableLayoutPanel zawsze zmniejsza się, aby zmieścić się w komórce do momentu osiągnięcia jego MinimumSize. Ten rozmiar jest wymuszany jako maksymalny rozmiar. Nie jest tak, gdy komórka jest częścią wiersza lub kolumny AutoSize.

Właściwość AutoSizeMode

Właściwość AutoSizeMode zapewnia bardziej szczegółową kontrolę nad domyślnym zachowaniem AutoSize. Właściwość AutoSizeMode określa, w jaki sposób kontrolka dostosowuje swój rozmiar do swojej zawartości. Na przykład zawartość może być tekstem kontrolki Button lub kontrolek podrzędnych dla kontenera.

W poniższej tabeli przedstawiono ustawienia AutoSizeMode i opis zachowania, które każdy z nich wywołuje.

Ustawienie AutoSizeMode Zachowanie
RozwijajISkurcz Kontrolka rośnie lub zmniejsza się, aby obejmowała jego zawartość.

Wartości MinimumSize i MaximumSize są honorowane, ale bieżąca wartość właściwości Size jest ignorowana.

Jest to takie samo zachowanie jak kontrolki z właściwością AutoSize i bez właściwości AutoSizeMode.
GrowOnly Kontrolka zwiększa się na tyle, na ile to konieczne, aby obejmowała jej zawartość, ale nie zmniejszy się poniżej wartości określonej przez jej właściwość Size.

To jest domyślna wartość dla AutoSizeMode.

Kontrolki obsługujące właściwość AutoSize

W poniższej tabeli wymieniono kontrolki obsługujące właściwości AutoSize i AutoSizeMode.

Obsługa AutoSize Typ kontrolki
obsługiwana właściwość - AutoSize.
- Brak właściwości AutoSizeMode.
CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBox (TextBox baza)

NumericUpDown

RadioButton

TextBox

TrackBar
obsługiwana właściwość - AutoSize.
obsługiwana właściwość - AutoSizeMode.
Button

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel
- Brak właściwości AutoSize. CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

Autosize w środowisku projektowym

W poniższej tabeli opisano zachowanie rozmiaru kontrolki w czasie projektowania na podstawie wartości jej AutoSize i AutoSizeMode właściwości.

Zastąpij właściwość SelectionRules, aby określić, czy dana kontrolka jest w stanie umożliwiającym zmianę rozmiaru użytkownika. W poniższej tabeli "nie można" oznacza tylko Moveable, "można" oznacza AllSizeable i Moveable.

Ustawienia AutoSize Gest określania rozmiaru w czasie projektowania
- AutoSize = true
- Brak właściwości AutoSizeMode.
Użytkownik nie może zmienić rozmiaru kontrolki w czasie projektowania, z wyjątkiem następujących kontrolek:

- TextBox
- MaskedTextBox
- RichTextBox
- TrackBar
- AutoSize = true
- AutoSizeMode = GrowAndShrink
Użytkownik nie może zmienić rozmiaru kontrolki w czasie projektowania.
- AutoSize = true
- AutoSizeMode = GrowOnly
Użytkownik może zmienić rozmiar kontrolki w czasie projektowania. Po ustawieniu właściwości Size użytkownik może tylko zwiększyć rozmiar kontrolki.
właściwość - AutoSize = falselub AutoSize jest ukryta. Użytkownik może zmienić rozmiar kontrolki w czasie projektowania.

Notatka

Aby zmaksymalizować produktywność, projektant formularzy Windows w Visual Studio przesłania właściwość AutoSize dla klasy Form. W czasie projektowania formularz zachowuje się tak, jakby właściwość AutoSize jest ustawiona na false, niezależnie od rzeczywistego ustawienia. W czasie wykonywania nie jest używane żadne specjalne dostosowanie, a właściwość AutoSize jest stosowana zgodnie z jej ustawieniem.

Zobacz też