ControlStyles Enumeração

Definição

Especifica o estilo e o comportamento de um controlo.

Esta enumeração suporta uma combinação bit-a-bit dos respetivos valores membro.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
[<System.Flags>]
type ControlStyles = 
Public Enum ControlStyles
Herança
ControlStyles
Atributos

Campos

Name Valor Description
ContainerControl 1

Se true, o controlo é um controlo semelhante a um contentor.

UserPaint 2

Se true, o controlo pinta-se a si próprio em vez do sistema operativo a fazê-lo. Se false, o Paint evento não for elevado. Este estilo aplica-se apenas a classes derivadas de Control.

Opaque 4

Se true, o controlo é desenhado opaco e o fundo não é pintado.

ResizeRedraw 16

Se true, o controlo é redesenhado quando é redimensionado.

FixedWidth 32

Se true, o controlo tem uma largura fixa quando escalado automaticamente. Por exemplo, se uma operação de layout tentar redimensionar o controlo para acomodar um novo Font, o comando Width permanece inalterado.

FixedHeight 64

Se true, o controlo tem uma altura fixa quando escalado automaticamente. Por exemplo, se uma operação de layout tentar redimensionar o controlo para acomodar um novo Font, o comando Height permanece inalterado.

StandardClick 256

Se true, o controlo implementa o comportamento padrão Click .

Selectable 512

Se true, o controlo pode receber foco.

UserMouse 1024

Se true, o controlo faz o seu próprio processamento do rato, e os eventos do rato não são tratados pelo sistema operativo.

SupportsTransparentBackColor 2048

Se true, o controlo aceita a BackColor com um componente alfa inferior a 255 para simular transparência. A transparência só será simulada se o UserPaint bit estiver definido como true e o controlo pai for derivado de Control.

StandardDoubleClick 4096

Se true, o controlo implementa o comportamento padrão DoubleClick . Este estilo é ignorado se o StandardClick bit não estiver definido para true.

AllPaintingInWmPaint 8192

Se true, o controlo ignora a mensagem da janela WM_ERASEBKGND para reduzir a cintilação. Este estilo só deve ser aplicado se o UserPaint bit estiver definido para true.

CacheText 16384

Se true, o controlo mantém uma cópia do texto em vez de o Handle obter cada vez que é necessário. Este estilo corresponde por defeito a false. Este comportamento melhora o desempenho, mas dificulta manter o texto sincronizado.

EnableNotifyMessage 32768

Se true, o OnNotifyMessage(Message) método é chamado para cada mensagem enviada aos .WndProc(Message) Este estilo corresponde por defeito a false. EnableNotifyMessage não funciona em trust parcial.

DoubleBuffer 65536

Se true, o desenho for realizado num buffer e, após concluir, o resultado é enviado para o ecrã. O duplo buffering previne o piscar causado pelo redesenho do controlo. Se definires DoubleBuffer para true, também deves definir UserPaint e AllPaintingInWmPaint para true.

OptimizedDoubleBuffer 131072

Se true, o controlo é primeiro desenhado para um buffer em vez de diretamente para o ecrã, o que pode reduzir a cintilação. Se definir esta propriedade para true, também deve definir para AllPaintingInWmPainttrue.

UseTextForAccessibility 262144

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

Exemplos

O exemplo seguinte demonstra a utilização 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

Observações

Os controlos utilizam esta enumeração em várias propriedades e métodos para especificar funcionalidades. Um controlo pode ativar um estilo chamando o SetStyle método e passando o bit (ou bits) apropriado ControlStyles e o valor booleano para definir o(s) bit(s). Por exemplo, a linha seguinte de código Visual Basic permitiria o double-buffering.

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

Se o bit AllPaintingInWmPaint estiver definido para true, a mensagem da janela WM_ERASEBKGND é ignorada, e ambos OnPaintBackground os métodos and OnPaint são chamados diretamente da janela de mensagens WM_PAINT. Isto geralmente reduz o cintilação, a menos que outros controlos enviem a mensagem da janela WM_ERASEBKGND ao controlo. Pode enviar a mensagem da janela WM_ERASEBKGRND para obter um efeito pseudo-transparente semelhante ao SupportsTransparentBackColor; Por exemplo, um ToolBar com aparência plana faz isto.

Para ativar totalmente o double-buffering, pode definir os bits OptimizedDoubleBuffer e AllPaintingInWmPaint para true. No entanto, o método preferido para permitir o duplo buffering, que produz o mesmo resultado, é definir a DoubleBuffered propriedade do controlo para true.

Se o bit SupportsTransparentBackColor estiver definido para true, e o BackColor for definido para uma cor cujo componente alfa seja inferior a 255, OnPaintBackground simulará transparência pedindo ao seu controlo pai para pintar o fundo. Isto não é verdadeira transparência.

Note

Se houver outro controlo entre o controlo e o seu pai, o controlo atual não mostrará o controlo no meio.

Quando o bit UserMouse é definido para true, os seguintes métodos continuam a ser chamados: Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnterControl.OnMouseMove, Control.OnMouseHover, , Control.OnMouseLeave, e Control.OnMouseWheel.

Quando o controlo é clicado, se o bit StandardClick for definido para true o método é Control.OnClick chamado e ele eleva o Control.Click evento. Quando o controlo é clicado em duas vezes, e tanto os bits StandardClick como StandardDoubleClick são definidos para true, o clique é passado para o DoubleClick evento. Depois chama-se o Control.OnDoubleClick método e eleva o Control.DoubleClick evento. No entanto, o controlo pode chamar OnClick ou OnDoubleClick diretamente independentemente dos valores dos bits StandardClick e StandardDoubleClick. Para mais informações sobre comportamentos de controlo, clique e duplo clique, consulte os Control.Click tópicos e.Control.DoubleClick

Quando o bit UseTextParaAcessibilidade está definido e existe um valor na propriedade do Text controlo, o valor dessa Text propriedade determina o nome de Acessibilidade Ativa predefinido e a tecla de atalho do controlo. Caso contrário, será usado o texto do controlo anterior Label . Este estilo é definido por defeito. Certos tipos de controlos incorporados, como TextBox e ComboBox, reiniciam este estilo para que a Text propriedade desses controlos não seja usada pela Acessibilidade Ativa.

Aplica-se a

Ver também