方法 : コントロールの描画クラスを使用する

更新 : 2007 年 11 月

ComboBoxRenderer クラスを使用してコンボ ボックス コントロールのドロップダウン矢印を表示する方法を次の例に示します。この例は単純なカスタム コントロールの OnPaint メソッドで構成されています。ComboBoxRenderer.IsSupported プロパティを使用して、アプリケーション ウィンドウのクライアント領域で visual スタイルを有効にするかどうかを指定します。visual スタイルをアクティブにすると、ComboBoxRenderer.DrawDropDownButton メソッドは、visual スタイルを使用してドロップダウン矢印を表示します。アクティブでない場合、ControlPaint.DrawComboButton メソッドは従来の Windows スタイルでドロップダウン矢印を表示します。

使用例

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

コードのコンパイル方法

この例で必要な要素は次のとおりです。

参照

概念

visual スタイルが使用されているコントロールのレンダリング