ControlStyles Enumeração

Definição

Especifica o estilo e 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

AllPaintingInWmPaint 8192

Se for true, o controle ignorará a mensagem da janela WM_ERASEBKGND para reduzir a cintilação. Esse estilo deverá ser aplicado somente se o bit UserPaint for definido como true.

CacheText 16384

Se for true, o controle manterá uma cópia do texto, em vez de obtê-lo do Handle sempre que necessário. Esse estilo usa false como padrão. Esse comportamento melhora o desempenho, mas dificulta manter o texto sincronizado.

ContainerControl 1

Se for true, o controle será um controle semelhante ao contêiner.

DoubleBuffer 65536

Se for true, um desenho será feito em um buffer e, após sua conclusão, o resultado será gerado na tela. O buffer duplo impede a cintilação causada pelo redesenho do controle. Se você definir DoubleBuffer como true, também deverá definir UserPaint e AllPaintingInWmPaint como true.

EnableNotifyMessage 32768

Se for true, o método OnNotifyMessage(Message) será chamado para cada mensagem enviada para o WndProc(Message) do controle. Esse estilo usa false como padrão. EnableNotifyMessage não funciona em uma relação de confiança parcial.

FixedHeight 64

Se for true, o controle terá uma altura fixa quando sua escala for ajustada automaticamente. Por exemplo, se uma operação de layout tentar ajustar a escala do controle para acomodar um novo Font, o Height do controle permanecerá inalterado.

FixedWidth 32

Se for true, o controle terá uma largura fixa quando sua escala for ajustada automaticamente. Por exemplo, se uma operação de layout tentar ajustar a escala do controle para acomodar um novo Font, o Width do controle permanecerá inalterado.

Opaque 4

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

OptimizedDoubleBuffer 131072

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

ResizeRedraw 16

Se for true, o controle será redesenhado quando for redimensionado.

Selectable 512

Se for true, o controle poderá receber o foco.

StandardClick 256

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

StandardDoubleClick 4096

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

SupportsTransparentBackColor 2048

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

UserMouse 1024

Se for true, o controle fará seu próprio processamento de mouse e os eventos do mouse não serão manipulados pelo sistema operacional.

UserPaint 2

Se for true, o controle pintará a si próprio em vez de ser pintado pelo sistema operacional. Se for false, o evento Paint não será gerado. Esse estilo se aplica apenas às classes derivadas de Control.

UseTextForAccessibility 262144

Especifica que o valor da propriedade Text do controle, se for definido, determinará o nome e a tecla de atalho padrão da Acessibilidade Ativa do controle.

Exemplos

O exemplo a seguir demonstra o uso de ControlStyles com o StyleChanged 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 como true, a mensagem de janela WM_ERASEBKGND será ignorada e os OnPaintBackground métodos e OnPaint 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, um ToolBar com aparência plana 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 como truee o 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 estiver definido como true o Control.OnClick método for chamado e ele gerar 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 comportamentos de clique e clique duas vezes em controle, consulte os Control.Click tópicos e Control.DoubleClick .

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. 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