Condividi tramite


Cenni preliminari sulla proprietà AutoSize

La AutoSize proprietà consente a un controllo di modificarne le dimensioni, se necessario, per ottenere il valore specificato dalla PreferredSize proprietà . È possibile modificare il comportamento di ridimensionamento per controlli specifici impostando la AutoSizeMode proprietà .

Comportamento autoSize

Solo alcuni controlli supportano la AutoSize proprietà . Inoltre, alcuni controlli che supportano la AutoSize proprietà supportano anche la AutoSizeMode proprietà .

La AutoSize proprietà produce un comportamento leggermente diverso, a seconda del tipo di controllo specifico e del valore della AutoSizeMode proprietà, se la proprietà esiste. La tabella seguente descrive i comportamenti che sono sempre true e fornisce una breve descrizione di ogni comportamento:

Comportamento sempre vero Descrizione
Il ridimensionamento automatico è una funzionalità di runtime. Ciò significa che non cresce mai o riduce mai un controllo e quindi non ha alcun effetto aggiuntivo.
Se un controllo modifica le dimensioni, il valore della relativa Location proprietà rimane sempre costante. Quando il contenuto di un controllo aumenta, il controllo cresce verso destra e verso il basso. I controlli non aumentano a sinistra.
Le Dock proprietà e Anchor vengono rispettate quando AutoSize è true. Il valore della proprietà del Location controllo viene modificato in base al valore corretto.

Nota IlLabel controllo è l'eccezione a questa regola. Quando si imposta il valore della proprietà di AutoSize un controllo ancorato Label su true, il Label controllo non si estenderà.
Le proprietà e MinimumSize di MaximumSize un controllo vengono sempre rispettate, indipendentemente dal valore della relativa AutoSize proprietà. Le MaximumSize proprietà e MinimumSize non sono interessate dalla AutoSize proprietà .
Nessuna dimensione minima impostata per impostazione predefinita. Ciò significa che se un controllo è impostato per la compattazione AutoSize e non ha contenuto, il valore della relativa Size proprietà è 0,0. In questo caso, il controllo si ridurrà a un punto e non sarà facilmente visibile.
Se un controllo non implementa il GetPreferredSize metodo , il metodo restituisce l'ultimo GetPreferredSize valore assegnato alla Size proprietà . Ciò significa che l'impostazione AutoSize su true non avrà alcun effetto.
Un controllo in una TableLayoutPanel cella viene sempre compattato per adattarsi alla cella fino a quando non MinimumSize viene raggiunto. Questa dimensione viene applicata come dimensione massima. Non si tratta del caso in cui la cella fa parte di una riga o di una AutoSize colonna.

AutoSizeMode, proprietà

La AutoSizeMode proprietà fornisce un controllo più granulare sul comportamento predefinito AutoSize . La AutoSizeMode proprietà specifica la dimensione di un controllo per il relativo contenuto. Il contenuto, ad esempio, può essere il testo di un Button controllo o dei controlli figlio per un contenitore.

La tabella seguente illustra le AutoSizeMode impostazioni e una descrizione del comportamento che ogni impostazione genera.

Impostazione autoSizeMode Comportamento
GrowAndShrink Il controllo aumenta o si riduce per comprenderne il contenuto.

I MinimumSize valori e MaximumSize vengono rispettati, ma il valore corrente della Size proprietà viene ignorato.

Si tratta dello stesso comportamento dei controlli con la AutoSize proprietà e nessuna AutoSizeMode proprietà.
GrowOnly Il controllo aumenta quanto necessario per comprenderne il contenuto, ma non ridurrà il valore specificato dalla relativa Size proprietà.

Questo è il valore predefinito per AutoSizeMode.

Controlli che supportano la proprietà AutoSize

Nella tabella seguente sono elencati i controlli che supportano le AutoSize proprietà e AutoSizeMode .

Supporto di AutoSize Tipo di controllo
- AutoSize proprietà supportata.
- Nessuna AutoSizeMode proprietà.
CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBox (TextBox base)

NumericUpDown

RadioButton

TextBox

TrackBar
- AutoSize proprietà supportata.
- AutoSizeMode proprietà supportata.
Button

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel
- Nessuna AutoSize proprietà. CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

Ridimensionamento automatico nell'ambiente di progettazione

Nella tabella seguente viene descritto il comportamento di ridimensionamento di un controllo in fase di progettazione, in base al valore delle relative AutoSize proprietà e AutoSizeMode .

Eseguire l'override della SelectionRules proprietà per determinare se un determinato controllo è in uno stato ridimensionabile dall'utente. Nella tabella seguente "cannot" indica Moveable solo , "can" significa AllSizeable e Moveable.

Impostazioni di Ridimensionamento automatico Movimento di ridimensionamento in fase di progettazione
- AutoSize = true
- Nessuna AutoSizeMode proprietà.
L'utente non può ridimensionare il controllo in fase di progettazione, ad eccezione dei controlli seguenti:

- TextBox
- MaskedTextBox
- RichTextBox
- TrackBar
- AutoSize = true
- AutoSizeMode = GrowAndShrink
L'utente non può ridimensionare il controllo in fase di progettazione.
- AutoSize = true
- AutoSizeMode = GrowOnly
L'utente può ridimensionare il controllo in fase di progettazione. Quando la Size proprietà è impostata, l'utente può aumentare solo le dimensioni del controllo.
- AutoSize = false, o AutoSize la proprietà è nascosta. L'utente può ridimensionare il controllo in fase di progettazione.

Nota

Per ottimizzare la produttività, la finestra di progettazione Windows Form in Visual Studio ombreggiate la AutoSize proprietà per la Form classe . In fase di progettazione, il form si comporta come se la AutoSize proprietà sia impostata su false, indipendentemente dall'impostazione effettiva. In fase di esecuzione, non viene effettuata alcuna sistemazione speciale e la AutoSize proprietà viene applicata come specificato dall'impostazione della proprietà.

Vedi anche