Partage via


ControlStyles Énumération

Définition

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

Cette énumération prend en charge une combinaison au niveau du bit de ses valeurs membres.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Héritage
ControlStyles
Attributs

Champs

AllPaintingInWmPaint 8192

Si true, le contrôle ignore le message de fenêtre WM_ERASEBKGND pour réduire le scintillement. Ce style doit être appliqué uniquement si le bit UserPaint est défini sur true.

ApplyThemingImplicitly 524288
CacheText 16384

Si true, le contrôle conserve une copie du texte plutôt que de l’obtenir à partir de Handle chaque fois que le texte est nécessaire. Ce style est false par défaut. Ce comportement améliore les performances, mais rend difficile la synchronisation du texte.

ContainerControl 1

Si true, le contrôle est de type conteneur.

DoubleBuffer 65536

Si true, le dessin s’effectue dans une mémoire tampon. Une fois le dessin terminé, le résultat s’affiche à l’écran. Un mécanisme de double tampon empêche le scintillement provoqué par le rafraîchissement du dessin du contrôle. Si vous définissez DoubleBuffer sur true, vous devez également définir UserPaint et AllPaintingInWmPaint sur true.

EnableNotifyMessage 32768

Si true, la méthode OnNotifyMessage(Message) est appelée pour chaque message envoyé au WndProc(Message) du contrôle. Ce style est false par défaut. EnableNotifyMessage ne fonctionne pas avec une confiance partielle.

FixedHeight 64

Si true, le contrôle a une hauteur fixe lors de la mise à l’échelle automatique. Par exemple, si une opération de disposition essaie de mettre à l’échelle le contrôle pour accueillir un nouveau Font, la Height du contrôle reste inchangé.

FixedWidth 32

Si true, le contrôle a une largeur fixe lors de la mise à l’échelle automatique. Par exemple, si une opération de disposition essaie de mettre à l’échelle le contrôle pour accueillir un nouveau Font, la Width du contrôle reste inchangé.

Opaque 4

Si true, le contrôle est affiché de manière opaque et l’arrière-plan n’est pas affiché.

OptimizedDoubleBuffer 131072

Si true, le contrôle est d’abord dessiné dans une mémoire tampon plutôt que directement à l’écran, ce qui peut réduire le scintillement. Si vous définissez cette propriété sur true, vous devez également définir AllPaintingInWmPaint sur true.

ResizeRedraw 16

Si true, le contrôle est redessiné quand il est redimensionné.

Selectable 512

Si true, le contrôle peut recevoir le focus.

StandardClick 256

Si true, le contrôle implémente le comportement Click standard.

StandardDoubleClick 4096

Si true, le contrôle implémente le comportement DoubleClick standard. Ce style est ignoré si le bit StandardClick n’est pas défini sur true.

SupportsTransparentBackColor 2048

Si true, le contrôle accepte une BackColor avec un composant alpha inférieur à 255 pour simuler la transparence. La transparence sera simulée seulement si le bit UserPaint est défini sur true et que le contrôle parent est dérivé de Control.

UserMouse 1024

Si true, le contrôle effectue son propre traitement de souris et les événements de souris ne sont pas gérés par le système d’exploitation.

UserPaint 2

Si true, le contrôle s’affiche lui-même plutôt que par le biais 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.

UseTextForAccessibility 262144

Spécifie que la valeur de la propriété Text du contrôle, si elle est définie, détermine le nom et la touche de raccourci par défaut Active Accessibility du contrôle.

Exemples

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

private:
   // Set the 'FixedHeight' and 'FixedWidth' styles to false.
   void MyForm_Load( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      this->SetStyle( ControlStyles::FixedHeight, false );
      this->SetStyle( ControlStyles::FixedWidth, false );
   }

   void RegisterEventHandler()
   {
      this->StyleChanged += gcnew EventHandler( this, &MyForm::MyForm_StyleChanged );
   }

   // Handle the 'StyleChanged' event for the 'Form'.
   void MyForm_StyleChanged( Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      MessageBox::Show( "The style releated to the 'Form' has been changed" );
   }
// 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");
}
' Set the 'FixedHeight' and 'FixedWidth' styles to false.
Private Sub MyForm_Load(sender As Object, e As EventArgs)
   Me.SetStyle(ControlStyles.FixedHeight, False)
   Me.SetStyle(ControlStyles.FixedWidth, False)
End Sub

Private Sub RegisterEventHandler()
   AddHandler Me.StyleChanged, AddressOf MyForm_StyleChanged
End Sub

' Handle the 'StyleChanged' event for the 'Form'.
Private Sub MyForm_StyleChanged(sender As Object, e As EventArgs)
   MessageBox.Show("The style releated to the 'Form' has been changed")
End Sub

Remarques

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 SetStyle méthode et en transmettant le ou les bits appropriés ControlStyles et la valeur booléenne sur laquelle définir le ou les bits. Par exemple, la ligne suivante de code Visual Basic permet la double mise en mémoire tampon.

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

Si le bit AllPaintingInWmPaint a la truevaleur , le message de fenêtre WM_ERASEBKGND est ignoré et les OnPaintBackground deux méthodes et OnPaint sont appelées directement à partir du message de fenêtre WM_PAINT. Cela réduit généralement le scintillement, sauf si d’autres contrôles envoient le message de fenêtre WM_ERASEBKGND au contrôle. Vous pouvez envoyer le message de fenêtre WM_ERASEBKGRND pour obtenir un effet pseudo-transparent similaire à SupportsTransparentBackColor ; par exemple, un avec une ToolBar apparence plate fait cela.

Pour activer entièrement la double mise en mémoire tampon, vous pouvez définir les bits OptimizedDoubleBuffer et AllPaintingInWmPaint sur true. Toutefois, la méthode recommandée pour activer la double mise en mémoire tampon, qui produit le même résultat, consiste à affecter à la DoubleBuffered propriété du contrôle la valeur true.

Si le bit SupportsTransparentBackColor a la truevaleur , et si est défini sur une couleur dont le BackColor composant alpha est inférieur à 255, OnPaintBackground simule la transparence en demandant à son contrôle parent de peindre l’arrière-plan. Ce n’est pas une véritable transparence.

Notes

S’il existe un autre contrôle entre le contrôle et son parent, le contrôle actuel n’affiche pas le contrôle au milieu.

Lorsque le bit UserMouse est défini sur true, les méthodes suivantes sont toujours appelées : Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseHoverControl.OnMouseMove, Control.OnMouseLeave, et Control.OnMouseWheel.

Lorsque vous cliquez sur le contrôle, si le bit StandardClick est défini sur true la Control.OnClick méthode est appelée et déclenche l’événement Control.Click . Lorsque le contrôle est double-cliqué et que les bits StandardClick et StandardDoubleClick sont définis truesur , le clic est transmis à l’événement DoubleClick . Ensuite, la Control.OnDoubleClick méthode est appelée et déclenche l’événement Control.DoubleClick . Toutefois, le contrôle peut appeler OnClick ou OnDoubleClick directement quelles que soient les valeurs de bits StandardClick et StandardDoubleClick. Pour plus d’informations sur les comportements de clic et de double-clic de contrôle, consultez les Control.Click rubriques et Control.DoubleClick .

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

S’applique à

Voir aussi