ControlStyles Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- Atributos
Campos
AllPaintingInWmPaint | 8192 | Si |
CacheText | 16384 | Si |
ContainerControl | 1 | Si |
DoubleBuffer | 65536 | Si |
EnableNotifyMessage | 32768 | Si |
FixedHeight | 64 | Si |
FixedWidth | 32 | Si |
Opaque | 4 | Si |
OptimizedDoubleBuffer | 131072 | Si |
ResizeRedraw | 16 | Si |
Selectable | 512 | Si |
StandardClick | 256 | Si |
StandardDoubleClick | 4096 | Si |
SupportsTransparentBackColor | 2048 | Si |
UserMouse | 1024 | Si |
UserPaint | 2 | Si |
UseTextForAccessibility | 262144 | Especifica que el valor de la propiedad |
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 true
en , 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 true
en .
Si el bit SupportsTransparentBackColor se establece true
en 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 true
los 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 true
en , 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.