ControlStyles Enumeração

Definição

Especifica o estilo e comportamento de um controle.Specifies the style and behavior of a control.

Esta enumeração tem um atributo <a href="https://docs.microsoft.com/en-us/dotnet/api/system.flagsattribute">FlagsAttribute</a> que permite uma combinação bit a bit dos valores membros dela.

public enum class ControlStyles
[System.Flags]
public enum ControlStyles
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.If true, the control ignores the window message WM_ERASEBKGND to reduce flicker. Esse estilo deverá ser aplicado somente se o bit UserPaint for definido como true.This style should only be applied if the UserPaint bit is set to 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.If true, the control keeps a copy of the text rather than getting it from the Handle each time it is needed. Esse estilo usa false como padrão.This style defaults to false. Esse comportamento melhora o desempenho, mas dificulta manter o texto sincronizado.This behavior improves performance, but makes it difficult to keep the text synchronized.

ContainerControl 1

Se for true, o controle será um controle semelhante ao contêiner.If true, the control is a container-like control.

DoubleBuffer 65536

Se for true, um desenho será feito em um buffer e, após sua conclusão, o resultado será gerado na tela.If true, drawing is performed in a buffer, and after it completes, the result is output to the screen. O buffer duplo impede a cintilação causada pelo redesenho do controle.Double-buffering prevents flicker caused by the redrawing of the control. Se você definir DoubleBuffer como true, também deverá definir UserPaint e AllPaintingInWmPaint como true.If you set DoubleBuffer to true, you should also set UserPaint and AllPaintingInWmPaint to true.

EnableNotifyMessage 32768

Se for true, o método OnNotifyMessage(Message) será chamado para cada mensagem enviada para o WndProc(Message) do controle.If true, the OnNotifyMessage(Message) method is called for every message sent to the control's WndProc(Message). Esse estilo usa false como padrão.This style defaults to false. EnableNotifyMessage não funciona em uma relação de confiança parcial.EnableNotifyMessage does not work in partial trust.

FixedHeight 64

Se for true, o controle terá uma altura fixa quando sua escala for ajustada automaticamente.If true, the control has a fixed height when auto-scaled. 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.For example, if a layout operation attempts to rescale the control to accommodate a new Font, the control's Height remains unchanged.

FixedWidth 32

Se for true, o controle terá uma largura fixa quando sua escala for ajustada automaticamente.If true, the control has a fixed width when auto-scaled. 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.For example, if a layout operation attempts to rescale the control to accommodate a new Font, the control's Width remains unchanged.

Opaque 4

Se for true, o controle será desenhado opaco e a tela de fundo não será pintada.If true, the control is drawn opaque and the background is not painted.

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.If true, the control is first drawn to a buffer rather than directly to the screen, which can reduce flicker. Se você definir essa propriedade como true, também deverá definir o AllPaintingInWmPaint como true.If you set this property to true, you should also set the AllPaintingInWmPaint to true.

ResizeRedraw 16

Se for true, o controle será redesenhado quando for redimensionado.If true, the control is redrawn when it is resized.

Selectable 512

Se for true, o controle poderá receber o foco.If true, the control can receive focus.

StandardClick 256

Se for true, o controle implementará o comportamento Click padrão.If true, the control implements the standard Click behavior.

StandardDoubleClick 4096

Se for true, o controle implementará o comportamento DoubleClick padrão.If true, the control implements the standard DoubleClick behavior. Esse estilo será ignorado se o bit StandardClick não for definido como true.This style is ignored if the StandardClick bit is not set to true.

SupportsTransparentBackColor 2048

Se for true, o controle aceitará um BackColor com um componente alfa de menos de 255 para simular a transparência.If true, the control accepts a BackColor with an alpha component of less than 255 to simulate transparency. A transparência será simulada somente se o bit UserPaint for definido como true e o controle pai for derivado de Control.Transparency will be simulated only if the UserPaint bit is set to true and the parent control is derived from 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.If true, the control does its own mouse processing, and mouse events are not handled by the operating system.

UserPaint 2

Se for true, o controle pintará a si próprio em vez de ser pintado pelo sistema operacional.If true, the control paints itself rather than the operating system doing so. Se for false, o evento Paint não será gerado.If false, the Paint event is not raised. Esse estilo se aplica apenas às classes derivadas de Control.This style only applies to classes derived from 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.Specifies that the value of the control's Text property, if set, determines the control's default Active Accessibility name and shortcut key.

Exemplos

O exemplo a seguir demonstra um uso de ControlStyles com o evento StyleChanged.The following example demonstrates a use of ControlStyles with the StyleChanged event.

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.Controls use this enumeration in various properties and methods to specify functionality. Um controle pode habilitar um estilo chamando o método SetStyle e passando o bit (ou bits) apropriado ControlStyles e o valor booliano para definir os bits como.A control can enable a style by calling the SetStyle method and passing in the appropriate ControlStyles bit (or bits) and the Boolean value to set the bit(s) to. Por exemplo, a linha de Visual Basic código a seguir habilitará o buffer duplo.For example, the following line of Visual Basic code would enable double-buffering.

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

Se o bit AllPaintingInWmPaint for definido como true, a mensagem de janela WM_ERASEBKGND será ignorada e os métodos OnPaintBackground e OnPaint serão chamados diretamente da mensagem de janela WM_PAINT.If the AllPaintingInWmPaint bit is set to true, the window message WM_ERASEBKGND is ignored, and both OnPaintBackground and OnPaint methods are called directly from the window message WM_PAINT. Isso geralmente reduz a cintilação, a menos que outros controles enviem a mensagem de janela WM_ERASEBKGND ao controle.This generally reduces flicker unless other controls send the window message WM_ERASEBKGND to the control. Você pode enviar a mensagem de janela WM_ERASEBKGRND para obter um efeito pseudo-transparente semelhante a SupportsTransparentBackColor; por exemplo, um ToolBar com aparência simples faz isso.You might send the window message WM_ERASEBKGRND to achieve a pseudo-transparent effect similar to SupportsTransparentBackColor; for example, a ToolBar with flat appearance does this.

Para habilitar totalmente o buffer duplo, você pode definir os bits OptimizedDoubleBuffer e AllPaintingInWmPaint como true.To fully enable double-buffering, you can set the OptimizedDoubleBuffer and AllPaintingInWmPaint bits to true. No entanto, o método preferencial para habilitar o buffer duplo, que produz o mesmo resultado, é definir a propriedade DoubleBuffered para o controle como true.However the preferred method for enabling double buffering, which yields the same result, is to set the DoubleBuffered property for the control to true.

Se o bit SupportsTransparentBackColor for definido como truee o BackColor estiver definido como uma cor cujo componente alfa é menor que 255, o OnPaintBackground simulará a transparência perguntando seu controle pai para pintar o plano de fundo.If the SupportsTransparentBackColor bit is set to true, and the BackColor is set to a color whose alpha component is less than 255, OnPaintBackground will simulate transparency by asking its parent control to paint the background. Essa não é uma transparência real.This is not true transparency.

Observação

Se houver outro controle entre o controle e seu pai, o controle atual não mostrará o controle no meio.If there is another control between the control and its parent, the current control will not show the control in the middle.

Quando o bit UserMouse está 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.When the UserMouse bit is set to true, the following methods are still called: Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeave, and Control.OnMouseWheel.

Quando o controle for clicado, se o bit StandardClick for definido como true o método Control.OnClick será chamado e gerará o evento Control.Click.When the control is clicked, if the StandardClick bit is set to true the Control.OnClick method is called and it raises the Control.Click event. Quando o controle é clicado duas vezes e os bits StandardClick e StandardDoubleClick são definidos como true, o clique é passado para o evento DoubleClick.When the control is double-clicked, and both the StandardClick and StandardDoubleClick bits are set to true, the click is passed on to the DoubleClick event. Em seguida, o método Control.OnDoubleClick é chamado e gera o evento Control.DoubleClick.Then the Control.OnDoubleClick method is called and it raises the Control.DoubleClick event. No entanto, o controle pode chamar OnClick ou OnDoubleClick diretamente, independentemente dos valores de bits StandardClick e StandardDoubleClick.However, the control can call OnClick or OnDoubleClick directly regardless of the StandardClick and StandardDoubleClick bit values. Para obter mais informações sobre os comportamentos de clique e clique duplo, consulte os tópicos Control.Click e Control.DoubleClick.For more information on control click and double click behaviors, see the Control.Click and Control.DoubleClick topics.

Quando o bit UseTextForAccessibility é definido e há um valor na propriedade Text do controle, o valor da propriedade Text do controle determina o nome do Acessibilidade Ativa padrão do controle e a tecla de atalho.When the UseTextForAccessibility bit is set and there is a value in the control's Text property, the value of that control's Text property determines the control's default Active Accessibility name and shortcut key. Caso contrário, o texto do controle de Label anterior será usado em vez disso.Otherwise, the text of the preceding Label control will be used instead. Esse estilo é definido por padrão.This style is set by default. Determinados tipos de controle internos, como TextBox e ComboBox, redefinem esse estilo para que a propriedade Text desses controles não seja usada pelo Acessibilidade Ativa.Certain built-in control types, such as TextBox and ComboBox, reset this style so that the Text property of those controls will not be used by Active Accessibility.

Aplica-se a

Veja também