ControlStyles Enum

Definition

Specifica lo stile e il comportamento di un controllo.Specifies the style and behavior of a control.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
type ControlStyles = 
Public Enum ControlStyles
Inheritance
ControlStyles
Attributes

Fields

AllPaintingInWmPaint 8192

Se true, il controllo ignora il messaggio finestra WM_ERASEBKGND per ridurre lo sfarfallio.If true, the control ignores the window message WM_ERASEBKGND to reduce flicker. Questo stile deve essere applicato solo se il bit di UserPaint è impostato su true.This style should only be applied if the UserPaint bit is set to true.

CacheText 16384

Se true, il controllo mantiene una copia del testo anziché ottenerlo dalla proprietà Handle ogni volta che è necessario.If true, the control keeps a copy of the text rather than getting it from the Handle each time it is needed. Il valore predefinito per questo stile è false.This style defaults to false. Questo comportamento migliora le prestazioni, ma rende difficile mantenere il testo sincronizzato.This behavior improves performance, but makes it difficult to keep the text synchronized.

ContainerControl 1

Se true, il controllo è un controllo simile a un contenitore.If true, the control is a container-like control.

DoubleBuffer 65536

Se true, il disegno viene eseguito in un buffer e, una volta completato, il risultato viene inviato allo schermo.If true, drawing is performed in a buffer, and after it completes, the result is output to the screen. Il doppio buffer impedisce lo sfarfallio causato dal ridisegno del controllo.Double-buffering prevents flicker caused by the redrawing of the control. Se si imposta DoubleBuffer su true, è necessario impostare anche UserPaint e AllPaintingInWmPaint su true.If you set DoubleBuffer to true, you should also set UserPaint and AllPaintingInWmPaint to true.

EnableNotifyMessage 32768

Se true, il metodo OnNotifyMessage(Message) viene chiamato per ogni messaggio inviato al metodo WndProc(Message) del controllo.If true, the OnNotifyMessage(Message) method is called for every message sent to the control's WndProc(Message). Il valore predefinito per questo stile è false.This style defaults to false. EnableNotifyMessage non funziona con l'attendibilità parziale.EnableNotifyMessage does not work in partial trust.

FixedHeight 64

Se true, il controllo ha una altezza fissa quando viene eseguito il ridimensionamento automatico.If true, the control has a fixed height when auto-scaled. 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.For example, if a layout operation attempts to rescale the control to accommodate a new Font, the control's Height remains unchanged.

FixedWidth 32

Se true, il controllo ha una larghezza fissa quando viene eseguito il ridimensionamento automatico.If true, the control has a fixed width when auto-scaled. 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.For example, if a layout operation attempts to rescale the control to accommodate a new Font, the control's Width remains unchanged.

Opaque 4

Se true, il controllo viene disegnato opaco e lo sfondo non viene disegnato.If true, the control is drawn opaque and the background is not painted.

OptimizedDoubleBuffer 131072

Se true, il controllo prima viene disegnato in un buffer anziché direttamente sullo schermo, in modo da ridurre lo sfarfallio.If true, the control is first drawn to a buffer rather than directly to the screen, which can reduce flicker. Se si imposta questa proprietà su true, è necessario impostare AllPaintingInWmPaint su true.If you set this property to true, you should also set the AllPaintingInWmPaint to true.

ResizeRedraw 16

Se true, il controllo viene ridisegnato quando viene ridimensionato.If true, the control is redrawn when it is resized.

Selectable 512

Se true, il controllo può ricevere lo stato attivo.If true, the control can receive focus.

StandardClick 256

Se true, il controllo implementa il comportamento Click standard.If true, the control implements the standard Click behavior.

StandardDoubleClick 4096

Se true, il controllo implementa il comportamento DoubleClick standard.If true, the control implements the standard DoubleClick behavior. Questo stile viene ignorato se il bit di StandardClick non è impostato su true.This style is ignored if the StandardClick bit is not set to true.

SupportsTransparentBackColor 2048

Se true, il controllo accetta una proprietà BackColor con un componente alfa minore di 255 per simulare la trasparenza.If true, the control accepts a BackColor with an alpha component of less than 255 to simulate transparency. La trasparenza verrà simulata solo se il bit di UserPaint viene impostato su true e il controllo padre è derivato da Control.Transparency will be simulated only if the UserPaint bit is set to true and the parent control is derived from Control.

UserMouse 1024

Se true, il controllo esegue autonomamente l'elaborazione del mouse e gli eventi del mouse non vengono gestiti dal sistema operativo.If true, the control does its own mouse processing, and mouse events are not handled by the operating system.

UserPaint 2

Se true, il controllo si disegna da solo anziché essere disegnato dal sistema operativo.If true, the control paints itself rather than the operating system doing so. Se false, l'evento Paint non viene generato.If false, the Paint event is not raised. Questo stile si applica solo alle classi derivate da Control.This style only applies to classes derived from 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.Specifies that the value of the control's Text property, if set, determines the control's default Active Accessibility name and shortcut key.

Examples

Nell'esempio seguente viene illustrato l'utilizzo di ControlStyles con l'evento StyleChanged.The following example demonstrates a use of ControlStyles with the StyleChanged event.

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

Remarks

I controlli utilizzano questa enumerazione in diversi metodi e proprietà per specificare la funzionalità.Controls use this enumeration in various properties and methods to specify functionality. Un controllo può abilitare uno stile chiamando il metodo SetStyle e passando il bit di ControlStyles appropriato (o BITS) e il valore booleano per impostare il bit/i su.A control can enable a style by calling the SetStyle method and passing in the appropriate ControlStyles bit (or bits) and the Boolean value to set the bit(s) to. Ad esempio, la riga di codice Visual Basic seguente abilita il doppio buffering.For example, the following line of Visual Basic code would enable double-buffering.

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

Se il bit AllPaintingInWmPaint è impostato su true, il WM_ERASEBKGND di messaggi della finestra viene ignorato e i metodi OnPaintBackground e OnPaint vengono chiamati direttamente dal WM_PAINT del messaggio della finestra.If the AllPaintingInWmPaint bit is set to true, the window message WM_ERASEBKGND is ignored, and both OnPaintBackground and OnPaint methods are called directly from the window message WM_PAINT. Questo riduce in genere lo sfarfallio a meno che altri controlli non inviino il messaggio della finestra WM_ERASEBKGND al controllo.This generally reduces flicker unless other controls send the window message WM_ERASEBKGND to the control. È possibile inviare il messaggio della finestra WM_ERASEBKGRND per ottenere un effetto pseudo-trasparente simile a SupportsTransparentBackColor; ad esempio, un ToolBar con l'aspetto flat esegue questa operazione.You might send the window message WM_ERASEBKGRND to achieve a pseudo-transparent effect similar to SupportsTransparentBackColor; for example, a ToolBar with flat appearance does this.

Per abilitare completamente il doppio buffering, è possibile impostare i bit OptimizedDoubleBuffer e AllPaintingInWmPaint su true.To fully enable double-buffering, you can set the OptimizedDoubleBuffer and AllPaintingInWmPaint bits to true. Tuttavia, il metodo preferito per l'abilitazione del doppio buffer, che produce lo stesso risultato, consiste nell'impostare la proprietà DoubleBuffered per il controllo su true.However the preferred method for enabling double buffering, which yields the same result, is to set the DoubleBuffered property for the control to true.

Se il bit SupportsTransparentBackColor è impostato su truee il BackColor è impostato su un colore il cui componente alfa è minore di 255, OnPaintBackground simula la trasparenza chiedendo al controllo padre di disegnare lo sfondo.If the SupportsTransparentBackColor bit is set to true, and the BackColor is set to a color whose alpha component is less than 255, OnPaintBackground will simulate transparency by asking its parent control to paint the background. Non si tratta di una trasparenza vera e propria.This is not true transparency.

Note

Se è presente un altro controllo tra il controllo e il relativo elemento padre, il controllo corrente non visualizzerà il controllo al centro.If there is another control between the control and its parent, the current control will not show the control in the middle.

Quando il bit bit UserMouse è impostato su true, vengono ancora chiamati i metodi seguenti: Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeavee Control.OnMouseWheel.When the UserMouse bit is set to true, the following methods are still called: Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeave, and Control.OnMouseWheel.

Quando si fa clic sul controllo, se il bit StandardClick è impostato su true viene chiamato il metodo Control.OnClick e viene generato l'evento Control.Click.When the control is clicked, if the StandardClick bit is set to true the Control.OnClick method is called and it raises the Control.Click event. Quando si fa doppio clic sul controllo e i bit StandardClick e StandardDoubleClick sono impostati su true, il clic viene passato all'evento DoubleClick.When the control is double-clicked, and both the StandardClick and StandardDoubleClick bits are set to true, the click is passed on to the DoubleClick event. Viene quindi chiamato il metodo Control.OnDoubleClick e viene generato l'evento Control.DoubleClick.Then the Control.OnDoubleClick method is called and it raises the Control.DoubleClick event. Tuttavia, il controllo può chiamare OnClick o OnDoubleClick direttamente indipendentemente dai valori di bit StandardClick e StandardDoubleClick.However, the control can call OnClick or OnDoubleClick directly regardless of the StandardClick and StandardDoubleClick bit values. Per ulteriori informazioni sui comportamenti di controllo clic e doppio clic, vedere gli argomenti Control.Click e Control.DoubleClick.For more information on control click and double click behaviors, see the Control.Click and Control.DoubleClick topics.

Quando il bit UseTextForAccessibility è impostato ed è presente un valore nella proprietà Text del controllo, il valore della proprietà Text del controllo determina il nome Active Accessibility predefinito del controllo e il tasto di scelta rapida.When the UseTextForAccessibility bit is set and there is a value in the control's Text property, the value of that control's Text property determines the control's default Active Accessibility name and shortcut key. In caso contrario, verrà usato il testo del controllo Label precedente.Otherwise, the text of the preceding Label control will be used instead. Questo stile è impostato per impostazione predefinita.This style is set by default. Alcuni tipi di controlli incorporati, ad esempio TextBox e ComboBox, reimpostano lo stile in modo che la proprietà Text di tali controlli non venga utilizzata da Active Accessibility.Certain built-in control types, such as TextBox and ComboBox, reset this style so that the Text property of those controls will not be used by Active Accessibility.

Applies to

See also