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 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
AllPaintingInWmPaint | 8192 | Se for |
ApplyThemingImplicitly | 524288 | |
CacheText | 16384 | Se for |
ContainerControl | 1 | Se for |
DoubleBuffer | 65536 | Se for |
EnableNotifyMessage | 32768 | Se for |
FixedHeight | 64 | Se for |
FixedWidth | 32 | Se for |
Opaque | 4 | Se for |
OptimizedDoubleBuffer | 131072 | Se for |
ResizeRedraw | 16 | Se for |
Selectable | 512 | Se for |
StandardClick | 256 | Se for |
StandardDoubleClick | 4096 | Se for |
SupportsTransparentBackColor | 2048 | Se for |
UserMouse | 1024 | Se for |
UserPaint | 2 | Se for |
UseTextForAccessibility | 262144 | Especifica que o valor da propriedade |
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 true
e 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.