Procedimiento para usar Utilizar una clase de representación de controles
En este ejemplo se muestra cómo usar la clase ComboBoxRenderer para representar la flecha desplegable de un control de cuadro combinado. El ejemplo consiste en el método OnPaint de un control personalizado sencillo. La propiedad ComboBoxRenderer.IsSupported se usa para determinar si los estilos visuales están habilitados en el área cliente de las ventanas de la aplicación. Si los estilos visuales están activados, el método ComboBoxRenderer.DrawDropDownButton representará la flecha desplegable con estilos visuales; de lo contrario, el ControlPaint.DrawComboButton método representará la flecha desplegable en el estilo clásico Windows.
Ejemplo
// Render the drop-down arrow with or without visual styles.
protected:
virtual void OnPaint(PaintEventArgs^ e) override
{
__super::OnPaint(e);
if (!ComboBoxRenderer::IsSupported)
{
ControlPaint::DrawComboButton(e->Graphics,
this->ClientRectangle, ButtonState::Normal);
}
else
{
ComboBoxRenderer::DrawDropDownButton(e->Graphics,
this->ClientRectangle, ComboBoxState::Normal);
}
}
// Render the drop-down arrow with or without visual styles.
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (!ComboBoxRenderer.IsSupported)
{
ControlPaint.DrawComboButton(e.Graphics,
this.ClientRectangle, ButtonState.Normal);
}
else
{
ComboBoxRenderer.DrawDropDownButton(e.Graphics,
this.ClientRectangle, ComboBoxState.Normal);
}
}
' Render the drop-down arrow with or without visual styles.
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
If Not ComboBoxRenderer.IsSupported Then
ControlPaint.DrawComboButton(e.Graphics, _
Me.ClientRectangle, ButtonState.Normal)
Else
ComboBoxRenderer.DrawDropDownButton(e.Graphics, _
Me.ClientRectangle, ComboBoxState.Normal)
End If
End Sub
Compilar el código
Para este ejemplo se necesita:
Control personalizado que deriva de la clase Control.
Un Form que hospeda el control personalizado.
Hace referencia a los espacios de nombres System, System.Drawing, System.Windows.Forms y System.Windows.Forms.VisualStyles.
Vea también
.NET Desktop feedback