Condividi tramite


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

Nome Valore Descrizione
ContainerControl 1

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

UserPaint 2

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

Opaque 4

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

ResizeRedraw 16

Se true, il controllo viene ridisegnato quando viene ridimensionato.

FixedWidth 32

Se true, il controllo ha una larghezza fissa quando viene ridimensionato automaticamente. Ad esempio, se un'operazione di layout tenta di ridimensionare il controllo per contenere un nuovo Fontoggetto , il controllo Width rimane invariato.

FixedHeight 64

Se true, il controllo ha un'altezza fissa quando viene ridimensionato automaticamente. Ad esempio, se un'operazione di layout tenta di ridimensionare il controllo per contenere un nuovo Fontoggetto , il controllo Height rimane invariato.

StandardClick 256

Se true, il controllo implementa il comportamento standard Click .

Selectable 512

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

UserMouse 1024

Se true, il controllo esegue la propria elaborazione del mouse e gli eventi del mouse non vengono gestiti dal sistema operativo.

SupportsTransparentBackColor 2048

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

StandardDoubleClick 4096

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

AllPaintingInWmPaint 8192

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

CacheText 16384

Se true, il controllo mantiene una copia del testo anziché recuperarla da Handle ogni volta che è necessaria. Per impostazione predefinita, questo stile è false. Questo comportamento migliora le prestazioni, ma rende difficile mantenere sincronizzato il testo.

EnableNotifyMessage 32768

Se true, il OnNotifyMessage(Message) metodo viene chiamato per ogni messaggio inviato al controllo WndProc(Message). Per impostazione predefinita, questo stile è false. EnableNotifyMessage non funziona con attendibilità parziale.

DoubleBuffer 65536

Se true, il disegno viene eseguito in un buffer e, al termine, il risultato viene restituito sullo schermo. Il doppio buffer impedisce lo sfarfallio causato dalla ridisegnazione del controllo. Se si imposta su DoubleBuffertrue, è necessario impostare UserPaint e AllPaintingInWmPaint su true.

OptimizedDoubleBuffer 131072

Se true, il controllo viene prima disegnato in un buffer anziché direttamente sullo schermo, che può ridurre lo sfarfallio. Se si imposta questa proprietà su true, è necessario impostare anche su AllPaintingInWmPainttrue.

UseTextForAccessibility 262144

Specifica che il valore della proprietà del Text controllo, se impostato, determina il nome predefinito dell'accessibilità attiva e il tasto di scelta rapida del controllo.

ApplyThemingImplicitly 524288

Per determinate modalità colore correlate all'interfaccia utente (modalità scura/modalità chiara), i controlli possono acconsentire esplicitamente all'applicazione automatica del tema appropriato. In particolare, i controlli che usano barre di scorrimento gestite dal sistema possono trarre vantaggio da questa impostazione. Si noti che l'uso di queste impostazioni causerà l'inattività di alcuni renderer di controllo win32 per un tema specifico.

Esempio

Nell'esempio seguente viene illustrato l'utilizzo 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 SetStyle metodo e passando il bit appropriato ControlStyles (o i bit) e il valore booleano su cui impostare i bit. Ad esempio, la riga di codice Visual Basic seguente abilita il doppio buffering.

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

Se il bit AllPaintingInWmPaint è impostato su true, il messaggio della finestra WM_ERASEBKGND viene ignorato e entrambi OnPaintBackground i metodi e OnPaint vengono chiamati direttamente dal messaggio della finestra WM_PAINT. Questo in genere riduce lo sfarfallio 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 pseudotrasparente simile a SupportsTransparentBackColor; ad esempio, un ToolBar oggetto con aspetto piatto esegue questa operazione.

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

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

Annotazioni

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

Quando il bit UserMouse è impostato su true, i metodi seguenti vengono comunque chiamati: Control.OnMouseDown, Control.OnMouseUpControl.OnMouseEnterControl.OnMouseHoverControl.OnMouseMove, Control.OnMouseLeave, e .Control.OnMouseWheel

Quando si fa clic sul controllo, se il bit StandardClick è impostato sul trueControl.OnClick metodo viene chiamato e genera l'evento Control.Click . Quando si fa doppio clic sul controllo 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 viene generato l'evento Control.DoubleClick . Tuttavia, il controllo può chiamare OnClick o OnDoubleClick direttamente indipendentemente dai valori di bit StandardClick e StandardDoubleClick. Per altre informazioni sui comportamenti di clic e doppio clic sul controllo, 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à utilizzato 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 dall'accessibilità attiva.

Si applica a

Vedi anche