Compartir a través de


Cómo: Utilizar una clase de representación de controles

Actualización: noviembre 2007

En este ejemplo se muestra cómo utilizar la clase ComboBoxRenderer para representar la flecha de lista desplegable de un control de cuadro combinado. El ejemplo consta del método OnPaint de un control personalizado simple. La propiedad ComboBoxRenderer.IsSupported se utiliza para determinar si se habilitan los estilos visuales en el área de cliente de las ventanas de la aplicación. Si los estilos visuales están activos, el método ComboBoxRenderer.DrawDropDownButton representará la flecha desplegable con estilos visuales; en caso contrario, el método ControlPaint.DrawComboButton representará la flecha desplegable en el estilo clásico de Windows.

Ejemplo

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

Compilar el código

Para este ejemplo se necesita:

Vea también

Conceptos

Representar controles con estilos visuales