AutoSize — Przegląd właściwości

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

Zachowanie automatycznego rozmiaru

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

Właściwość AutoSize generuje nieco inne zachowanie, w zależności od określonego AutoSizeMode typu kontrolki i wartości właściwości, 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ą czasu wykonywania. Oznacza to, że nigdy nie rośnie lub zmniejsza kontrolkę, a następnie nie ma dalszego efektu.
Jeśli kontrolka zmienia rozmiar, wartość jej Location właściwości zawsze pozostaje stała. Gdy zawartość kontrolki powoduje jej wzrost, kontrolka rośnie w kierunku prawej i w dół. Kontrolki nie rosną po lewej stronie.
Właściwości Dock i Anchor są honorowane, gdy AutoSize ma wartość true. Wartość właściwości kontrolki Location jest dostosowywana do poprawnej wartości.

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

Właściwość AutoSizeMode

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

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

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

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

Jest to takie samo zachowanie, jak kontrolki z właściwością i żadną AutoSizeAutoSizeMode właściwością.
GrowOnly Kontrolka zwiększa się tak samo, jak to konieczne, aby obejmowała jego zawartość, ale nie zmniejszy się o mniejszą niż wartość określona przez jej Size właściwość.

Jest to wartość domyślna dla .AutoSizeMode

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

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

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

DomainUpDown

Label

LinkLabel

MaskedTextBox (TextBox podstawa)

NumericUpDown

RadioButton

TextBox

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

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel
- Brak AutoSize właściwości. 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 określania rozmiaru kontrolki w czasie projektowania na podstawie wartości jej AutoSize właściwości i AutoSizeMode .

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 Moveable tylko "can" oznacza AllSizeable i Moveable.

Ustawienia automatycznego rozmiaru Gest określania rozmiaru w czasie projektowania
- AutoSize = true
- Brak AutoSizeMode właściwości.
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 Size właściwości użytkownik może tylko zwiększyć rozmiar kontrolki.
- AutoSize = false, lub AutoSize właściwość jest ukryta. Użytkownik może zmienić rozmiar kontrolki w czasie projektowania.

Uwaga

Aby zmaksymalizować produktywność, formularze systemu Windows Projektant w programie Visual Studio w tle AutoSize właściwości klasyForm. W czasie projektowania formularz zachowuje się tak, jakby AutoSize właściwość jest ustawiona na false, niezależnie od rzeczywistego ustawienia. W czasie wykonywania nie są tworzone żadne specjalne zakwaterowanie, a AutoSize właściwość jest stosowana zgodnie z ustawieniem właściwości.

Zobacz też