Compartir a través de


ControlStyles Enumeración

Definición

Especifica el estilo y comportamiento de un control.

Esta enumeración admite una combinación bit a bit de sus valores de miembro.

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

Campos

AllPaintingInWmPaint 8192

Si true, el control ignora el mensaje de ventana WM_ERASEBKGND para reducir el parpadeo. Este estilo solo debe aplicarse si el bit UserPaint se establece en true.

ApplyThemingImplicitly 524288
CacheText 16384

Si true, el control mantiene una copia del texto en lugar de obtenerlo desde Handle cada vez que se necesita. Este estilo tiene como valor predeterminado false. Este comportamiento mejora el rendimiento, pero es difícil mantener el texto sincronizado.

ContainerControl 1

Si true, el control es un control similar a un contenedor.

DoubleBuffer 65536

Si true, se realiza el dibujo en un búfer y, después de que finalice, el resultado aparece en la pantalla. El doble búfer evita que se produzca un parpadeo como consecuencia de volver a dibujar el control. Si establece DoubleBuffer en true, también debe establecer UserPaint y AllPaintingInWmPaint en true.

EnableNotifyMessage 32768

Si true, se llama al método OnNotifyMessage(Message) para cada mensaje enviado al WndProc(Message) del control. Este estilo tiene como valor predeterminado false. EnableNotifyMessage no funciona en confianza parcial.

FixedHeight 64

Si true, el control tiene un alto fijo cuando se ajusta la escala automática. Por ejemplo, si una operación de diseño intercambia la escala del control para dar cabida a un nuevo Font, el Height del control permanece sin cambios.

FixedWidth 32

Si true, el control tiene un ancho fijo cuando se ajusta la escala automática. Por ejemplo, si una operación de diseño intercambia la escala del control para dar cabida a un nuevo Font, el Width del control permanece sin cambios.

Opaque 4

Si true, el control se dibuja opaco y no se pinta el fondo.

OptimizedDoubleBuffer 131072

Si true, el control se dibuja primero en un búfer, en lugar de directamente en la pantalla, lo que puede reducir el parpadeo. Si establece esta propiedad en true, también debe establecer AllPaintingInWmPaint en true.

ResizeRedraw 16

Si true, el control se vuelve a dibujar cuando se cambia el tamaño.

Selectable 512

Si true, el control puede recibir el foco.

StandardClick 256

Si true, el control implementa el comportamiento Click estándar.

StandardDoubleClick 4096

Si true, el control implementa el comportamiento DoubleClick estándar. Este estilo se omite si el bit StandardClick no está establecido en true.

SupportsTransparentBackColor 2048

Si true, el control acepta un BackColor con un componente alfa menor de 255 para simular una transparencia. La transparencia solo se simulará si el bit UserPaint se establece en true y el control primario deriva de Control.

UserMouse 1024

Si true, el control realiza su propio procesamiento de mouse y el sistema operativo no controla los eventos de mouse.

UserPaint 2

Si true, el control es el que dibuja en vez de hacerlo el sistema operativo. Si false, el evento Paint no se genera. Este estilo solo se aplica a las clases derivadas de Control.

UseTextForAccessibility 262144

Especifica que el valor de la propiedad Text del control, si se establece, determina el nombre de Active Accessibility y el método abreviado de teclado predeterminado del control.

Ejemplos

En el ejemplo siguiente se muestra un uso de ControlStyles con el 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

Comentarios

Los controles usan esta enumeración en varias propiedades y métodos para especificar la funcionalidad. Un control puede habilitar un estilo llamando al SetStyle método y pasando el bit adecuado ControlStyles (o bits) y el valor booleano en el que establecer los bits. Por ejemplo, la siguiente línea de código de Visual Basic habilitaría el almacenamiento en búfer doble.

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

Si el bit AllPaintingInWmPaint se establece trueen , se omite el mensaje de la ventana WM_ERASEBKGND y se llama a ambos OnPaintOnPaintBackground métodos directamente desde el mensaje de la ventana WM_PAINT. Esto generalmente reduce el parpadeo a menos que otros controles envíen el mensaje de la ventana WM_ERASEBKGND al control. Puede enviar el mensaje de ventana WM_ERASEBKGRND para lograr un efecto pseudotransparente similar a SupportsTransparentBackColor; por ejemplo, un ToolBar con apariencia plana lo hace.

Para habilitar completamente el almacenamiento en búfer doble, puede establecer los bits OptimizedDoubleBuffer y AllPaintingInWmPaint en true. Sin embargo, el método preferido para habilitar el almacenamiento en búfer doble, que produce el mismo resultado, es establecer la DoubleBuffered propiedad para el control trueen .

Si el bit SupportsTransparentBackColor se establece trueen y BackColor se establece en un color cuyo componente alfa es inferior a 255, OnPaintBackground simulará la transparencia pidiendo a su control primario que pinte el fondo. Esto no es una transparencia verdadera.

Nota

Si hay otro control entre el control y su elemento primario, el control actual no mostrará el control en el medio.

Cuando el bit UserMouse se establece en , se sigue llamando a truelos métodos siguientes: Control.OnMouseDown, , Control.OnMouseEnterControl.OnMouseUp, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeavey Control.OnMouseWheel.

Cuando se hace clic en el control, si se establece true el bit StandardClick en el Control.OnClick método y genera el Control.Click evento. Cuando se hace doble clic en el control y los bits StandardClick y StandardDoubleClick se establecen trueen , el clic se pasa al DoubleClick evento. A continuación, se llama al Control.OnDoubleClick método y genera el Control.DoubleClick evento . Sin embargo, el control puede llamar OnClick a o OnDoubleClick directamente independientemente de los valores de bits StandardClick y StandardDoubleClick. Para obtener más información sobre el control de los comportamientos de clic y doble clic, consulte los Control.Click temas y Control.DoubleClick .

Cuando se establece el bit UseTextForAccessibility y hay un valor en la propiedad del Text control, el valor de esa Text propiedad determina el nombre de accesibilidad activo predeterminado del control y la tecla de método abreviado. De lo contrario, se usará en su lugar el texto del control anterior Label . Este estilo se establece de forma predeterminada. Ciertos tipos de control integrados, como TextBox y ComboBox, restablecen este estilo para que la Text propiedad de esos controles no la use la accesibilidad activa.

Se aplica a

Consulte también