ControlStyles Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
- Attributi
Campi
| Nome | Valore | Descrizione |
|---|---|---|
| ContainerControl | 1 | Se |
| UserPaint | 2 | Se |
| Opaque | 4 | Se |
| ResizeRedraw | 16 | Se |
| FixedWidth | 32 | Se |
| FixedHeight | 64 | Se |
| StandardClick | 256 | Se |
| Selectable | 512 | Se |
| UserMouse | 1024 | Se |
| SupportsTransparentBackColor | 2048 | Se |
| StandardDoubleClick | 4096 | Se |
| AllPaintingInWmPaint | 8192 | Se |
| CacheText | 16384 | Se |
| EnableNotifyMessage | 32768 | Se |
| DoubleBuffer | 65536 | Se |
| OptimizedDoubleBuffer | 131072 | Se |
| UseTextForAccessibility | 262144 | Specifica che il valore della proprietà del |
| 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.