Condividi tramite


Procedura: utilizzare una classe Control Rendering

Aggiornamento: novembre 2007

In questo esempio viene illustrato come utilizzare la classe ComboBoxRenderer per eseguire il rendering della freccia a discesa di un controllo casella combinata. L'esempio si basa sul metodo OnPaint di un semplice controllo personalizzato. La proprietà ComboBoxRenderer.IsSupported viene utilizzata per determinare se gli stili visivi vengono attivati nell'area client delle finestre dell'applicazione. Se gli stili visivi sono attivi, il metodo ComboBoxRenderer.DrawDropDownButton esegue il rendering della freccia a discesa con gli stili visivi. Altrimenti il metodo ControlPaint.DrawComboButton esegue il rendering della freccia a discesa nello stile Windows classico.

Esempio

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

Compilazione del codice

L'esempio presenta i seguenti requisiti:

Vedere anche

Concetti

Rendering dei controlli con stili visivi