Vue d'ensemble de la propriété AutoSize

La propriété AutoSize permet à un contrôle de modifier sa taille, si nécessaire, pour atteindre la valeur spécifiée par la propriété PreferredSize. Vous ajustez le comportement de dimensionnement de contrôles spécifiques en définissant la propriété AutoSizeMode.

Comportement de redimensionnement automatique

Seuls certains contrôles prennent en charge la propriété AutoSize. De plus, quelques contrôles qui prennent en charge la propriété AutoSize prennent en charge également la propriété AutoSizeMode.

La propriété AutoSize produit un comportement quelque peu différent, selon le type de contrôle spécifique et la valeur de la propriété AutoSizeMode, si la propriété existe. Le tableau suivant décrit les comportements qui sont toujours vrais et fournit une brève description de chacun :

Comportement toujours vrai

Description

Le dimensionnement automatique est une fonctionnalité runtime.

Cela signifie qu'il n'augmente jamais ou réduit la taille d'un contrôle, puis n'a aucun plus effet supplémentaire.

Si un contrôle change de taille, la valeur de sa propriété Location reste toujours constante.

Lorsque le contenu d'un contrôle fait augmenter la taille de celui-ci, le contrôle se développe vers la droite et le bas. Les contrôles ne se développent pas à gauche.

Les propriétés Dock et Anchor sont honorées lorsque AutoSize a la valeur true.

La valeur de la propriété Location du contrôle s'ajuste à la valeur correcte.

Remarque   Le contrôle Label est l'exception à cette règle. Lorsque vous attribuez à la propriété AutoSize d'un contrôle ancré Label la valeur true, le contrôle Label ne s'étire pas.

Les propriétés MaximumSize et MinimumSize d'un contrôle sont toujours honorées, indépendamment de la valeur de sa propriété AutoSize.

Les propriétés MaximumSize et MinimumSize ne sont pas affectées par la propriété AutoSize.

Il n'y a pas de taille minimale définie par défaut.

Cela signifie que si un contrôle est configuré pour être réduit sous AutoSize et ne possède pas de contenu, la valeur de sa propriété Size est 0,0. Dans ce cas, votre contrôle sera réduit jusqu'à un certain point et ne sera pas aisément visible.

Si un contrôle n'implémente pas la méthode GetPreferredSize, la méthode GetPreferredSize retourne la dernière valeur assignée à la propriété Size.

Cela signifie que le fait d'attribuer à AutoSize la valeur true n'aura aucun effet.

Un contrôle dans une cellule TableLayoutPanel réduit toujours sa taille pour tenir dans la cellule jusqu'à ce que sa MinimumSize soit atteinte.

Cette taille est appliquée comme taille maximale. Ce n'est pas le cas lorsque la cellule fait partie d'une ligne ou d'une colonne AutoSize.

Propriété AutoSizeMode

La propriété AutoSizeMode permet un contrôle plus fin du comportement AutoSize par défaut. La propriété AutoSizeMode spécifie comment un contrôle se dimensionne lui-même par rapport à son contenu. Par exemple, le contenu pourrait être le texte pour un contrôle Button ou les contrôles enfants pour un conteneur.

Le tableau suivant affiche les paramètres AutoSizeMode et une description du comportement que chaque paramètre est fournie.

Paramètre AutoSizeMode

Comportement

GrowAndShrink

Le contrôle augmente ou réduit sa taille pour englober son contenu.

Les valeurs MinimumSize et MaximumSize sont honorées, mais la valeur actuelle de la propriété Size est ignorée.

C'est le même comportement que les contrôles avec la propriété AutoSize et sans propriété AutoSizeMode.

GrowOnly

Le contrôle augmente sa taille autant que nécessaire de façon à englober son contenu, mais ne la diminue pas à une valeur inférieure à celle spécifiée par sa propriété Size.

C'est la valeur par défaut pour AutoSizeMode.

Contrôles qui prennent en charge la propriété AutoSize

Le tableau suivant répertorie les contrôles qui prennent en charge les propriétés AutoSize et AutoSizeMode.

Prise en charge de AutoSize

Type de contrôle

  • La propriété AutoSize est prise en charge.

  • Pas de propriété AutoSizeMode.

CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBox (TextBox base)

NumericUpDown

RadioButton

TextBox

TrackBar

  • La propriété AutoSize est prise en charge.

  • La propriété AutoSizeMode est prise en charge.

Button

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel

CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

Redimensionnement automatiquement dans l'environnement de design

Le tableau suivant décrit le comportement de dimensionnement d'un contrôle au moment du design, selon la valeur de ses propriétés AutoSize et AutoSizeMode.

Substituez la propriété SelectionRules pour déterminer si un contrôle donné est dans un état redimensionnable par l'utilisateur. Dans le tableau suivant, « ne peut pas » signifie Moveable uniquement, « peut » signifie AllSizeable et Moveable.

Paramètres AutoSize

Opération de dimensionnement au moment du design

  • AutoSize = true

  • Pas de propriété AutoSizeMode.

L'utilisateur ne peut pas redimensionner le contrôle au moment du design, à l'exception des contrôles suivants :

L'utilisateur ne peut pas redimensionner le contrôle au moment du design.

L'utilisateur peut redimensionner le contrôle au moment du design. Lorsque la propriété Size est définie, l'utilisateur peut uniquement augmenter la taille du contrôle.

L'utilisateur peut redimensionner le contrôle au moment du design.

Notes

Pour maximaliser la productivité, le Concepteur Windows Forms masque la propriété AutoSize pour la classe Form. Au moment du design, le formulaire se comporte comme si la propriété AutoSize a la valeur false, indépendamment de son paramètre réel. Au moment de l'exécution, aucun aménagement spécial n'est effectué, et la propriété AutoSize est appliquée comme spécifié par le paramètre de propriété.

Voir aussi

Référence

AutoSize

PreferredSize

GetPreferredSize