Este tema aún no ha recibido ninguna valoración - Valorar este tema

ControlStyles (Enumeración)

Actualización: noviembre 2007

Especifica el estilo y el comportamiento de un control.

Esta 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
public enum ControlStyles
Nombre de miembro Descripción
ContainerControl Si es true, el control es de tipo contenedor.
UserPaint Si 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.
Opaque Si es true, el control se dibuja opaco y no se pinta el fondo.
ResizeRedraw Si es true, el control vuelve a dibujarse cada vez que cambia de tamaño.
FixedWidth Si 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.
FixedHeight Si 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.
StandardClick Si es true, el control implementa el comportamiento estándar de Click.
Selectable Si es true, el control puede recibir el foco.
UserMouse Si es true, el control realiza su propio procesamiento de mouse (ratón) y el sistema operativo no controla los eventos de mouse.
SupportsTransparentBackColor Si 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.
StandardDoubleClick Si 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.
AllPaintingInWmPaint Si 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.
CacheText Si 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.
EnableNotifyMessage Si 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.
DoubleBuffer Si 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.
OptimizedDoubleBuffer 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, debe establecer también AllPaintingInWmPaint en true.
UseTextForAccessibility Especifica 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.

fkf25009.alert_note(es-es,VS.90).gifNota:

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 Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar