ControlStyles Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica o estilo e o comportamento de um controle.
Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.
public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles =
Public Enum ControlStyles
- Herança
- Atributos
Campos
| Nome | Valor | Description |
|---|---|---|
| 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 | Especifica que o valor da propriedade do |
| ApplyThemingImplicitly | 524288 | Para determinados modos de cores relacionados à interface do usuário (Modo Escuro/Modo Claro), os controles podem optar por aplicar automaticamente o tema apropriado. Especialmente os controles que estão utilizando barras de rolagem gerenciadas pelo sistema podem se beneficiar dessa configuração. Observe que usar essas configurações fará com que alguns renderizadores de temas de controle win32 fiquem inativos para um tema específico. |
Exemplos
O exemplo a seguir demonstra o uso do ControlStylesStyleChanged evento.
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
Comentários
Os controles usam essa enumeração em várias propriedades e métodos para especificar a funcionalidade. Um controle pode habilitar um estilo chamando o SetStyle método e passando o bit apropriado ControlStyles (ou bits) e o valor booliano para o qual definir os bits. Por exemplo, a seguinte linha de código do Visual Basic habilitaria o buffer duplo.
myControl.SetStyle(UserPaint Or AllPaintingInWmPaint Or DoubleBuffer, True)
Se o bit AllPaintingInWmPaint estiver definido comotrue, a mensagem de janela WM_ERASEBKGND será ignorada e ambos e OnPaint os OnPaintBackground métodos serão chamados diretamente da mensagem de janela WM_PAINT. Isso geralmente reduz a cintilação, a menos que outros controles enviem a mensagem de janela WM_ERASEBKGND para o controle. Você pode enviar a mensagem de janela WM_ERASEBKGRND para obter um efeito pseudotransparente semelhante a SupportsTransparentBackColor; por exemplo, uma ToolBar aparência simples faz isso.
Para habilitar totalmente o buffer duplo, você pode definir os bits OptimizedDoubleBuffer e AllPaintingInWmPaint como true. No entanto, o método preferencial para habilitar o buffer duplo, que produz o mesmo resultado, é definir a DoubleBuffered propriedade para o controle como true.
Se o bit SupportsTransparentBackColor estiver definido truecomo , e ele BackColor estiver definido como uma cor cujo componente alfa seja menor que 255, OnPaintBackground simulará a transparência solicitando que seu controle pai pinte a tela de fundo. Isso não é transparência verdadeira.
Observação
Se houver outro controle entre o controle e seu pai, o controle atual não mostrará o controle no meio.
Quando o bit UserMouse é definido como true, os seguintes métodos ainda são chamados: Control.OnMouseDown, , Control.OnMouseUp, Control.OnMouseEnter, , Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeavee Control.OnMouseWheel.
Quando o controle é clicado, se o bit StandardClick é definido como true o Control.OnClick método é chamado e ele aciona o Control.Click evento. Quando o controle é clicado duas vezes e os bits StandardClick e StandardDoubleClick são definidos como true, o clique é passado para o DoubleClick evento. Em seguida, o Control.OnDoubleClick método é chamado e gera o Control.DoubleClick evento. No entanto, o controle pode chamar OnClick ou OnDoubleClick diretamente, independentemente dos valores de bit StandardClick e StandardDoubleClick. Para obter mais informações sobre o controle, clique e clique duas vezes nos comportamentos, consulte os tópicos e Control.DoubleClick os Control.Click tópicos.
Quando o bit UseTextForAccessibility é definido e há um valor na propriedade do Text controle, o valor da propriedade desse Text controle determina o nome padrão de Acessibilidade Ativa e a chave de atalho do controle. Caso contrário, o texto do controle anterior Label será usado em vez disso. Esse estilo é definido por padrão. Determinados tipos de controle internos, como TextBox e ComboBox, redefinem esse estilo para que a Text propriedade desses controles não seja usada pela Acessibilidade Ativa.