ControlStyles Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- Atributos
Campos
| Name | 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 certos modos de cor relacionados com a interface de utilizador (Modo Escuro/Modo Claro), os controlos podem optar por aplicar automaticamente a temática apropriada. Especialmente os controlos que utilizam barras de scroll geridas pelo sistema podem beneficiar desta configuração. Note que usar estas definições fará com que alguns renderizadores de temas de controlo do Win32 fiquem inativos para um tema específico. |
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.