Partilhar via


ControlStyles Enumeração

Definição

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
ControlStyles
Atributos

Campos

Nome Valor Description
ContainerControl 1

Se true, o controle é um controle semelhante a um contêiner.

UserPaint 2

Se true, o controle se pinta em vez de o sistema operacional fazer isso. Se false, o Paint evento não será gerado. Esse estilo só se aplica a classes derivadas de Control.

Opaque 4

Se true, o controle é desenhado opaco e a tela de fundo não é pintada.

ResizeRedraw 16

Se trueo controle for redesenhado quando for redimensionado.

FixedWidth 32

Se trueo controle tiver uma largura fixa quando dimensionado automaticamente. Por exemplo, se uma operação de layout tentar redimensionar o controle para acomodar um novo Font, o controle Width permanecerá inalterado.

FixedHeight 64

Se true, o controle tem uma altura fixa quando dimensionado automaticamente. Por exemplo, se uma operação de layout tentar redimensionar o controle para acomodar um novo Font, o controle Height permanecerá inalterado.

StandardClick 256

Se true, o controle implementará o comportamento padrão Click .

Selectable 512

Se true, o controle poderá receber o foco.

UserMouse 1024

Se trueo controle fizer seu próprio processamento de mouse e os eventos do mouse não forem manipulados pelo sistema operacional.

SupportsTransparentBackColor 2048

Se true, o controle aceitará um BackColor componente alfa com menos de 255 para simular transparência. A transparência será simulada somente se o UserPaint bit estiver definido true e o controle pai for derivado de Control.

StandardDoubleClick 4096

Se true, o controle implementará o comportamento padrão DoubleClick . Esse estilo será ignorado se o StandardClick bit não estiver definido como true.

AllPaintingInWmPaint 8192

Se true, o controle ignorará a mensagem de janela WM_ERASEBKGND para reduzir a cintilação. Esse estilo só deverá ser aplicado se o UserPaint bit estiver definido como true.

CacheText 16384

Se true, o controle mantém uma cópia do texto em vez de aususá-la de Handle cada vez que for necessário. Esse estilo usa falsecomo padrão . Esse comportamento melhora o desempenho, mas dificulta a sincronização do texto.

EnableNotifyMessage 32768

Se true, o OnNotifyMessage(Message) método é chamado para cada mensagem enviada para o controle.WndProc(Message) Esse estilo usa falsecomo padrão . EnableNotifyMessage não funciona em confiança parcial.

DoubleBuffer 65536

Se true, o desenho é executado em um buffer e, depois de concluído, o resultado é a saída para a tela. O buffer duplo impede a cintilação causada pelo redesenho do controle. Se você definir DoubleBuffer como true, você também deve definir UserPaint e AllPaintingInWmPaint para true.

OptimizedDoubleBuffer 131072

Se true, o controle é desenhado primeiro para um buffer em vez de diretamente para a tela, o que pode reduzir a cintilação. Se você definir essa propriedade como true, você também deverá definir como AllPaintingInWmPainttrue.

UseTextForAccessibility 262144

Especifica que o valor da propriedade do Text controle, se definido, determina o nome e a chave de atalho padrão de Acessibilidade Ativa do controle.

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.

Aplica-se a

Confira também