ControlStyles Enumerazione

Definizione

Specifica lo stile e il comportamento di un controllo.

Questa enumerazione supporta una combinazione bit per bit dei rispettivi valori dei membri.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Ereditarietà
ControlStyles
Attributi

Campi

AllPaintingInWmPaint 8192

Se true, il controllo ignora il messaggio finestra WM_ERASEBKGND per ridurre lo sfarfallio. Questo stile deve essere applicato solo se il bit di UserPaint è impostato su true.

CacheText 16384

Se true, il controllo mantiene una copia del testo anziché ottenerlo dalla proprietà Handle ogni volta che è necessario. Il valore predefinito per questo stile è false. Questo comportamento migliora le prestazioni, ma rende difficile mantenere il testo sincronizzato.

ContainerControl 1

Se true, il controllo è un controllo simile a un contenitore.

DoubleBuffer 65536

Se true, il disegno viene eseguito in un buffer e, una volta completato, il risultato viene inviato allo schermo. Il doppio buffer impedisce lo sfarfallio causato dal ridisegno del controllo. Se si imposta DoubleBuffer su true, è necessario impostare anche UserPaint e AllPaintingInWmPaint su true.

EnableNotifyMessage 32768

Se true, il metodo OnNotifyMessage(Message) viene chiamato per ogni messaggio inviato al metodo WndProc(Message) del controllo. Il valore predefinito per questo stile è false. EnableNotifyMessage non funziona con l'attendibilità parziale.

FixedHeight 64

Se true, il controllo ha una altezza fissa quando viene eseguito il ridimensionamento automatico. Ad esempio, se un'operazione di layout tenta di ridimensionare il controllo per contenere un nuovo oggetto Font, la proprietà Height del controllo rimane invariata.

FixedWidth 32

Se true, il controllo ha una larghezza fissa quando viene eseguito il ridimensionamento automatico. Ad esempio, se un'operazione di layout tenta di ridimensionare il controllo per contenere un nuovo oggetto Font, la proprietà Width del controllo rimane invariata.

Opaque 4

Se true, il controllo viene disegnato opaco e lo sfondo non viene disegnato.

OptimizedDoubleBuffer 131072

Se true, il controllo prima viene disegnato in un buffer anziché direttamente sullo schermo, in modo da ridurre lo sfarfallio. Se si imposta questa proprietà su true, è necessario impostare AllPaintingInWmPaint su true.

ResizeRedraw 16

Se true, il controllo viene ridisegnato quando viene ridimensionato.

Selectable 512

Se true, il controllo può ricevere lo stato attivo.

StandardClick 256

Se true, il controllo implementa il comportamento Click standard.

StandardDoubleClick 4096

Se true, il controllo implementa il comportamento DoubleClick standard. Questo stile viene ignorato se il bit di StandardClick non è impostato su true.

SupportsTransparentBackColor 2048

Se true, il controllo accetta una proprietà BackColor con un componente alfa minore di 255 per simulare la trasparenza. La trasparenza verrà simulata solo se il bit di UserPaint viene impostato su true e il controllo padre è derivato da Control.

UserMouse 1024

Se true, il controllo esegue autonomamente l'elaborazione del mouse e gli eventi del mouse non vengono gestiti dal sistema operativo.

UserPaint 2

Se true, il controllo si disegna da solo anziché essere disegnato dal sistema operativo. Se false, l'evento Paint non viene generato. Questo stile si applica solo alle classi derivate da Control.

UseTextForAccessibility 262144

Specifica che il valore della proprietà Text del controllo, se impostato, determina il tasto di scelta rapida e il nome Active Accessibility predefiniti del controllo.

Esempio

Nell'esempio seguente viene illustrato un uso di ControlStyles con l'evento 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

Commenti

I controlli usano questa enumerazione in varie proprietà e metodi per specificare la funzionalità. Un controllo può abilitare uno stile chiamando il metodo e passando il SetStyle bit appropriato ControlStyles (o bit) e il valore booleano su cui impostare i bit. Ad esempio, la riga seguente del codice Visual Basic abilita il buffer double-buffer.

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

Se il bit AllPaintingInWmPaint è impostato su true, il messaggio della finestra WM_ERASEBKGND viene ignorato e OnPaintBackground entrambi i OnPaint metodi vengono chiamati direttamente dal messaggio della finestra WM_PAINT. Questo riduce in genere il flicker a meno che altri controlli non inviino il messaggio della finestra WM_ERASEBKGND al controllo. È possibile inviare il messaggio della finestra WM_ERASEBKGRND per ottenere un effetto pseudo-trasparente simile a SupportTransparentBackColor; ad esempio, un con aspetto ToolBar flat esegue questa operazione.

Per abilitare completamente il buffer doppio, è possibile impostare i bit OptimizedDoubleBuffer e AllPaintingInWmPaint su true. Tuttavia, il metodo preferito per abilitare il buffer double, che restituisce lo stesso risultato, consiste nell'impostare la DoubleBuffered proprietà per il controllo su true.

Se il bit SupportsTransparentBackColor è impostato su truee viene BackColor impostato su un colore il cui componente alfa è minore di 255, OnPaintBackground simula la trasparenza chiedendo al controllo padre di disegnare lo sfondo. Non è vera trasparenza.

Nota

Se è presente un altro controllo tra il controllo e il relativo padre, il controllo corrente non mostrerà il controllo al centro.

Quando il bit UserMouse è impostato su true, i metodi seguenti sono ancora chiamati: Control.OnMouseDownControl.OnMouseMoveControl.OnMouseEnterControl.OnMouseHoverControl.OnMouseUpControl.OnMouseLeave, e .Control.OnMouseWheel

Quando viene fatto clic sul controllo, se il bit StandardClick è impostato sul trueControl.OnClick metodo viene chiamato e genera l'evento Control.Click . Quando il controllo viene fatto doppio clic e i bit StandardClick e StandardDoubleClick sono impostati su true, il clic viene passato all'evento DoubleClick . Viene quindi chiamato il Control.OnDoubleClick metodo e genera l'evento Control.DoubleClick . Tuttavia, il controllo può chiamare OnClick o OnDoubleClick direttamente indipendentemente dai valori di bit StandardClick e StandardDoubleClick. Per altre informazioni sul controllo fare clic e fare doppio clic su comportamenti, vedere gli Control.Click argomenti e Control.DoubleClick .

Quando il bit UseTextForAccessibility è impostato e nella proprietà del Text controllo è presente un valore, il valore della proprietà del Text controllo determina il nome predefinito dell'accessibilità attiva e il tasto di scelta rapida del controllo. In caso contrario, verrà usato il testo del controllo precedente Label . Questo stile è impostato per impostazione predefinita. Alcuni tipi di controllo predefiniti, ad esempio TextBox e ComboBox, reimpostano questo stile in modo che la Text proprietà di tali controlli non venga usata da Active Accessibility.

Si applica a

Vedi anche