ControlStyles Enum

Definition

Anger en kontrolls format och beteende.

Den här uppräkningen stöder en bitvis kombination av dess medlemsvärden.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Arv
ControlStyles
Attribut

Fält

Name Värde Description
ContainerControl 1

Om trueär kontrollen en containerliknande kontroll.

UserPaint 2

Om true, färgar kontrollen sig själv i stället för operativsystemet som gör det. false Om Paintutlöses inte händelsen. Det här formatet gäller endast för klasser som härletts från Control.

Opaque 4

Om trueritas kontrollen ogenomskinlig och bakgrunden är inte målad.

ResizeRedraw 16

Om trueritas kontrollen om när den ändras.

FixedWidth 32

Om truehar kontrollen en fast bredd när den skalas automatiskt. Om en layoutåtgärd till exempel försöker skala om kontrollen för att rymma en ny Fontförblir kontrollens Width oförändrad.

FixedHeight 64

Om truehar kontrollen en fast höjd när den skalas automatiskt. Om en layoutåtgärd till exempel försöker skala om kontrollen för att rymma en ny Fontförblir kontrollens Height oförändrad.

StandardClick 256

Om trueimplementerar kontrollen standardbeteendet Click .

Selectable 512

Om truekan kontrollen få fokus.

UserMouse 1024

Om truehanterar kontrollen sin egen musbearbetning och mushändelser hanteras inte av operativsystemet.

SupportsTransparentBackColor 2048

Om trueaccepterar kontrollen en BackColor med en alfakomponent på mindre än 255 för att simulera transparens. Transparens simuleras endast om biten UserPaint är inställd på true och den överordnade kontrollen härleds från Control.

StandardDoubleClick 4096

Om trueimplementerar kontrollen standardbeteendet DoubleClick . Det här formatet ignoreras om biten StandardClick inte är inställd på true.

AllPaintingInWmPaint 8192

Om trueignorerar kontrollen fönstermeddelandet WM_ERASEBKGND för att minska flimmer. Det här formatet bör endast användas om biten UserPaint är inställd på true.

CacheText 16384

Om truebehåller kontrollen en kopia av texten i stället för att hämta den från varje gång den Handle behövs. Det här formatet är falsesom standard . Det här beteendet förbättrar prestandan, men gör det svårt att hålla texten synkroniserad.

EnableNotifyMessage 32768

true Om OnNotifyMessage(Message)anropas metoden för varje meddelande som skickas till kontrollens WndProc(Message). Det här formatet är falsesom standard . EnableNotifyMessage fungerar inte i partiellt förtroende.

DoubleBuffer 65536

Om true, utförs ritningen i en buffert, och när den är klar utdata till skärmen. Dubbelbuffring förhindrar flimmer som orsakas av att kontrollen ritas om. Om du anger DoubleBuffer till truebör du också ange UserPaint och AllPaintingInWmPaint till true.

OptimizedDoubleBuffer 131072

Om truedras kontrollen först till en buffert i stället för direkt till skärmen, vilket kan minska flimmer. Om du anger den här egenskapen till truebör du också ange AllPaintingInWmPaint till true.

UseTextForAccessibility 262144

Anger att värdet för kontrollens egenskap, om det anges, avgör kontrollens standardnamn för aktiv tillgänglighet och genvägsnyckel Text .

ApplyThemingImplicitly 524288

För vissa användargränssnittsrelaterade färglägen (mörkt läge/ljust läge) kan kontroller välja att automatiskt tillämpa rätt teman. Särskilt kontroller som använder systemhanterade rullningslister kan dra nytta av den här inställningen. Observera att om du använder de här inställningarna blir vissa win32-kontroller inaktiva för ett specifikt tema.

Exempel

I följande exempel visas hur händelsen ControlStyles användsStyleChanged.

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

Kommentarer

Kontroller använder den här uppräkningen i olika egenskaper och metoder för att ange funktioner. En kontroll kan aktivera ett format genom att anropa SetStyle metoden och skicka in lämplig ControlStyles bit (eller bitar) och det booleska värdet som bitarna ska anges till. Följande rad med Visual Basic kod skulle till exempel aktivera dubbel buffring.

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

Om AllPaintingInWmPaint-biten är inställd på trueignoreras fönstermeddelandet WM_ERASEBKGND och båda OnPaintBackground metoderna anropas OnPaint direkt från fönstermeddelandet WM_PAINT. Detta minskar vanligtvis flimmer om inte andra kontroller skickar fönstermeddelandet WM_ERASEBKGND till kontrollen. Du kan skicka fönstermeddelandet WM_ERASEBKGRND för att uppnå en pseudotransparent effekt som liknar SupportsTransparentBackColor. till exempel en ToolBar med platt utseende gör detta.

Om du vill aktivera dubbel buffring fullt ut kan du ange bitarna OptimizedDoubleBuffer och AllPaintingInWmPaint till true. Den bästa metoden för att aktivera dubbel buffring, som ger samma resultat, är dock att ange DoubleBuffered egenskapen för kontrollen till true.

Om biten SupportsTransparentBackColor är inställd på true, och BackColor är inställd på en färg vars alfakomponent är mindre än 255, OnPaintBackground simuleras transparens genom att dess överordnade kontroll uppmanas att måla bakgrunden. Detta är inte sann öppenhet.

Note

Om det finns en annan kontroll mellan kontrollen och dess överordnade kontroll visas inte kontrollen i mitten.

När UserMouse-biten är inställd på trueanropas fortfarande följande metoder: Control.OnMouseDown, , Control.OnMouseUpControl.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeaveoch Control.OnMouseWheel.

När kontrollen klickas, om StandardClick-biten true är inställd på Control.OnClick metoden anropas och den genererar Control.Click händelsen. När kontrollen dubbelklickas och både StandardClick- och StandardDoubleClick-bitarna är inställda truepå , skickas klicket vidare till DoubleClick händelsen. Control.OnDoubleClick Sedan anropas metoden och den genererar Control.DoubleClick händelsen. Kontrollen kan dock anropa OnClick eller OnDoubleClick direkt oavsett bitvärdena StandardClick och StandardDoubleClick. Mer information om hur du klickar och dubbelklickar på kontroller finns i avsnitten Control.Click och Control.DoubleClick .

När biten UseTextForAccessibility har angetts och det finns ett värde i kontrollens Text egenskap, avgör värdet för kontrollens egenskap kontrollens standardnamn och genvägsnyckel Text för aktiv tillgänglighet. Annars används texten i föregående Label kontroll i stället. Det här formatet anges som standard. Vissa inbyggda kontrolltyper, till exempel TextBox och ComboBox, återställer det här formatet så att Text egenskapen för dessa kontroller inte används av Active Accessibility.

Gäller för

Se även