Cette documentation est archivée et n’est pas conservée.

ControlStyles, énumération

Mise à jour : novembre 2007

Spécifie le style et le comportement d'un contrôle.

Cette énumération possède un attribut FlagsAttribute qui permet la combinaison d'opérations de bits de ses valeurs de membres.

Espace de noms :  System.Windows.Forms
Assembly :  System.Windows.Forms (dans System.Windows.Forms.dll)

[FlagsAttribute]
public enum ControlStyles
/** @attribute FlagsAttribute */
public enum ControlStyles
public enum ControlStyles

Nom de membreDescription
ContainerControlSi la valeur true est affectée, le contrôle est un contrôle de type conteneur.
UserPaintSi la valeur true est affectée, le contrôle se peint lui-même, sans l'intervention du système d'exploitation. Si false, l'événement Paint n'est pas déclenché. Ce style ne s'applique qu'aux classes dérivées de Control.
OpaqueSi la valeur true est affectée, le contrôle est dessiné de manière opaque et l'arrière-plan n'est pas peint.
ResizeRedrawSi la valeur true est affectée, le contrôle est redessiné au cours de son redimensionnement.
FixedWidthSi la valeur true est affectée, le contrôle possède une largeur fixe lors de la mise à l'échelle automatique. Par exemple, si une opération de disposition essaie de rajuster la taille du contrôle pour accueillir un nouveau Font, le Width du contrôle ne change pas.
FixedHeightSi la valeur true est affectée, le contrôle possède une hauteur fixe lors de la mise à l'échelle automatique. Par exemple, si une opération de disposition essaie de rajuster la taille du contrôle pour accueillir un nouveau Font, le Height du contrôle ne change pas.
StandardClickSi la valeur true est affectée, le contrôle implémente le comportement Click standard.
SelectableSi la valeur est true, le contrôle peut recevoir le focus.
UserMouseSi la valeur true est affectée, le contrôle effectue son propre traitement de souris et les événements de la souris ne sont pas gérés par le système d'exploitation.
SupportsTransparentBackColorSi la valeur true est affectée, le contrôle accepte BackColor avec un composant alpha inférieur à 255 pour simuler la transparence. La transparence ne sera simulée que si true est affecté au bit UserPaint et si le contrôle parent est dérivé de Control.
StandardDoubleClickSi la valeur true est affectée, le contrôle implémente le comportement DoubleClick standard. Ce style est ignoré si le bit StandardClick n'a pas la valeur true.
AllPaintingInWmPaintSi true, le contrôle ignore le message de fenêtre WM_ERASEBKGND pour réduire le scintillement. Ce style ne doit être appliqué que si la valeur true est affectée au bit UserPaint.
CacheTextSi la valeur true est affectée, le contrôle conserve une copie du texte plutôt que de l'obtenir de Handle chaque fois que cela est nécessaire. false est affecté par défaut à ce style. Ce comportement optimise les performances, mais il rend la synchronisation du texte difficile.
EnableNotifyMessageSi true est affecté, alors la méthode OnNotifyMessage est appelée à chaque message envoyé au WndProc du contrôle. Ce style a par défaut la valeur false. EnableNotifyMessage ne fonctionne pas dans la confiance partielle.
DoubleBufferSi la valeur true est affectée, le dessin s'effectue dans une mémoire tampon ; une fois terminé, le résultat s'affiche à l'écran. La double mise en mémoire tampon empêche le scintillement survenant lorsque le contrôle se redessine. Si vous affectez la valeur true à DoubleBuffer, vous devez également affecter la valeur true à UserPaint et AllPaintingInWmPaint.
OptimizedDoubleBufferSi la valeur true est affectée, le contrôle est dessiné dans une mémoire tampon plutôt que directement à l'écran, ce qui peut réduire le scintillement. Si vous affectez la valeur true à cette propriété, vous devez également affecter la valeur true à AllPaintingInWmPaint.
UseTextForAccessibilitySpécifie que la valeur de la propriété Text du contrôle, si elle est définie, détermine le nom Active Accessibility par défaut du contrôle et la touche de raccourci.

Les contrôles utilisent cette énumération dans diverses propriétés et méthodes pour spécifier des fonctionnalités. Un contrôle peut activer un style en appelant la méthode SetStyle et en passant les bits ControlStyles appropriés, ainsi que la valeur booléenne à attribuer aux bits. Par exemple, la ligne suivante de code Visual Basic active la double mise en mémoire tampon.

 myControl.SetStyle(UserPaint Or AllPaintingInWmPaint Or DoubleBuffer, True)

Si le bit AllPaintingInWmPaint a la valeur true, alors le message de fenêtre WM_ERASEBKGND est ignoré ; en outre, les méthodes OnPaintBackground et OnPaint sont toutes deux directement appelées à partir du message de fenêtre WM_PAINT. Le scintillement s'en trouve généralement réduit, à moins que d'autres contrôles n'envoient le message de fenêtre WM_ERASEBKGND au contrôle. Vous pouvez envoyer le message de fenêtre WM_ERASEBKGRND pour donner un effet pseudo-transparent analogue à SupportsTransparentBackColor (ToolBar avec une apparence à deux dimensions, par exemple).

Pour totalement activer la double mise en mémoire tampon, vous pouvez affecter true aux bits OptimizedDoubleBuffer et AllPaintingInWmPaint. Toutefois, la méthode recommandée pour la double mise en mémoire tampon, qui génère le même résultat, consiste à affecter la valeur true à la propriété DoubleBuffered du contrôle.

Si le bit SupportsTransparentBackColor a la valeur true et si une couleur dont le composant alpha est inférieur à 255 est affectée à BackColor, alors OnPaintBackground simulera la transparence en demandant à son contrôle parent de peindre l'arrière-plan. Il ne s'agit pas d'une véritable transparence.

Remarque :

En présence d'un autre contrôle entre le contrôle et son parent, le contrôle en cours n'affichera pas le contrôle au milieu.

Lorsque le bit UserMouse a la valeur true, les méthodes suivantes sont encore appelées : Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeave et Control.OnMouseWheel.

À la suite d'un clic sur le contrôle, si le bit StandardClick a la valeur true, la méthode Control.OnClick est appelée et déclenche l'événement Control.Click. À la suite d'un double-clic sur le contrôle, si les deux bits StandardClick et StandardDoubleClick ont la valeur true, le clic est passé à l'événement DoubleClick. La méthode Control.OnDoubleClick est alors appelée et déclenche l'événement Control.DoubleClick. Cependant, le contrôle peut appeler OnClick ou OnDoubleClick directement, quelles que soient les valeurs de bit StandardClick et StandardDoubleClick. Pour plus d'informations sur les comportements de clic et de double-clic sur un contrôle, consultez les rubriques Control.Click et Control.DoubleClick.

Lorsque le bit UseTextForAccessibility est défini et qu'il existe une valeur dans la propriété Text du contrôle, la valeur de la propriété Text de ce contrôle détermine le nom Active Accessibility par défaut du contrôle et la touche de raccourci. Sinon, le texte du contrôle Label précédent sera utilisé à la place. Ce style a la valeur par défaut. Certains types de contrôle intégrés, tels que TextBox et ComboBox, réinitialisent ce style afin que la propriété Text de ces contrôles ne soit pas utilisée par Active Accessibility.

Remarques à l'attention des héritiers :

L'héritage d'un contrôle Windows Forms standard et le remplacement des valeurs de bit StandardClick ou StandardDoubleClick par true peut aboutir à un comportement inattendu ou ne produire aucun effet si le contrôle ne prend pas en charge les événements Click ou DoubleClick.

L'exemple suivant illustre l'utilisation de ControlStyles avec l'événement StyleChanged.

// Set the 'FixedHeight' and 'FixedWidth' styles to false.
private void MyForm_Load(object sender, EventArgs e)
{
   this.SetStyle(ControlStyles.FixedHeight, false);
   this.SetStyle(ControlStyles.FixedWidth, false);
}

private void RegisterEventHandler()
{
   this.StyleChanged += new EventHandler(MyForm_StyleChanged);
}

// Handle the 'StyleChanged' event for the 'Form'.
private void MyForm_StyleChanged(object sender, EventArgs e)
{
   MessageBox.Show("The style releated to the 'Form' has been changed");
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0
Afficher: