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