Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

ControlStyles (Enumeración)

Especifica el estilo y el comportamiento de un control.

La enumeración tiene un atributo FlagsAttribute que permite una combinación bit a bit de los valores de miembro.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

[FlagsAttribute] 
public enum ControlStyles
/** @attribute FlagsAttribute() */ 
public enum ControlStyles
FlagsAttribute 
public enum ControlStyles

 Nombre de miembroDescripción
AllPaintingInWmPaintSi es true, el control pasa por alto el mensaje de ventana WM_ERASEBKGND para reducir el parpadeo. Este estilo sólo debe aplicarse si el bit UserPaint se establece en true
CacheTextSi es true, el control guarda una copia del texto en lugar de obtenerlo de la propiedad Handle cada vez que lo necesita. El valor predeterminado de este estilo es false. Este comportamiento mejora el rendimiento, pero dificulta la capacidad de mantener el texto sincronizado. 
ContainerControlSi es true, el control es de tipo contenedor. 
DoubleBufferSi es true, el dibujo se realiza en un búfer y, una vez terminado, 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, debe establecer también UserPaint y AllPaintingInWmPaint en true
EnableNotifyMessageSi el valor es true, se llama al método OnNotifyMessage para cada mensaje enviado al método WndProc del control. Este estilo tiene como valor predeterminado false. EnableNotifyMessage no funciona en la confianza parcial. 
FixedHeightSi es true, el control tiene un alto fijo cuando se ajusta la escala automática. Por ejemplo, si durante una operación de diseño se intenta volver a aplicar la escala al control para que se ajuste a una nueva Font, la propiedad Height del control no se modifica. 
FixedWidthSi es true, el control tiene un ancho fijo cuando se ajusta la escala automática. Por ejemplo, si durante una operación de diseño se intenta volver a aplicar la escala al control para que se ajuste a una nueva Font, la propiedad Width del control no se modifica. 
OpaqueSi es true, el control se dibuja opaco y no se pinta el fondo. 
OptimizedDoubleBufferSi 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, debe establecer también AllPaintingInWmPaint en true
ResizeRedrawSi es true, el control vuelve a dibujarse cada vez que cambia de tamaño. 
SelectableSi es true, el control puede recibir el foco. 
StandardClickSi es true, el control implementa el comportamiento estándar de Click
StandardDoubleClickSi es true, el control implementa el comportamiento estándar de DoubleClick. Este estilo se pasa por alto si el bit StandardClick no está establecido en true
SupportsTransparentBackColorSi es true, el control acepta una propiedad BackColor con un componente alfa menor de 255 para simular una transparencia. La transparencia se simulará sólo si se establece el bit UserPaint en true y el control primario se deriva de Control
UserMouseSi es true, el control realiza su propio procesamiento de mouse (ratón) y el sistema operativo no controla los eventos de mouse. 
UserPaintSi es true, es el propio control en lugar del sistema operativo el que se pinta a sí mismo. Si es false, no se provoca el evento Paint. Este estilo sólo se aplica a las clases derivadas de Control
UseTextForAccessibilityEspecifica que el valor de la propiedad Text del control (si se ha establecido) determina el nombre de Active Accessibility predeterminado del control y su tecla de método abreviado. 

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

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

Si el bit AllPaintingInWmPaint se establece en true, el mensaje de ventana WM_ERASEBKGND se pasa por alto y se llama directamente a los métodos OnPaintBackground y OnPaint desde el mensaje de ventana WM_PAINT. Normalmente, esto reduce el parpadeo a menos que otros controles envíen el mensaje de ventana WM_ERASEBKGND al control. Se podría enviar el mensaje de ventana WM_ERASEBKGRND para obtener un efecto pseudotransparente, similar a SupportsTransparentBackColor; un ejemplo sería un objeto ToolBar con apariencia plana.

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

Si el bit SupportsTransparentBackColor se establece en true y la propiedad BackColor se establece en un color cuyo componente alfa es menor que 255, OnPaintBackground simulará la transparencia pidiendo al control primario que pinte el fondo. Ésta no es una transparencia real.

NotaNota:

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

Si el bit UserMouse se establece en true, se sigue llamando a los siguientes métodos: Control.OnMouseDown, Control.OnMouseUp, Control.OnMouseEnter, Control.OnMouseMove, Control.OnMouseHover, Control.OnMouseLeave y Control.OnMouseWheel.

Cuando se hace clic en el control, si el bit StandardClick está establecido en true, se llama al método Control.OnClick y se provoca el evento Control.Click. Cuando se hace doble clic en el control, si los bits StandardClick yStandardDoubleClick están establecidos en true, el clic se pasa al evento DoubleClick. Después se llama al método Control.OnDoubleClick y se provoca el evento Control.DoubleClick. No obstante, el control puede llamar a OnClick o OnDoubleClick directamente, independientemente de los valores de bit StandardClick y StandardDoubleClick. Para obtener más información sobre los comportamientos correspondientes a hacer clic y doble clic en un control, vea los temas Control.Click y Control.DoubleClick.

Cuando se establece el bit UseTextForAccessibility y hay un valor en la propiedad Text del control, el valor de esa propiedad Text del control determina el nombre de Active Accessibility del control predeterminado y su tecla de método abreviado. De lo contrario, se utilizará en su lugar el texto del control Label anterior. Este estilo se establece de manera predeterminada. Algunos tipos de control integrados, como TextBox y ComboBox, restablecen este estilo para que Active Accessibility no utilice la propiedad Text de estos controles.

Notas para los herederos: Cuando se hereda de un control estándar de formularios Windows Forms y se modifican los valores de bit StandardClick o StandardDoubleClick a true, puede producirse un comportamiento inesperado o puede que no se produzca ningún efecto si el control no admite los eventos Click o DoubleClick.

En el siguiente ejemplo se muestra cómo utilizar ControlStyles con el evento StyleChanged.

// 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");
}

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0
Mostrar:
© 2014 Microsoft