方法: コントロールの描画クラスを使用する
この例では、ComboBoxRenderer クラスを使用してコンボ ボックス コントロールのドロップダウン矢印をレンダリングする方法を示します。 この例は、シンプルなカスタム コントロールの OnPaint メソッドで構成されています。 ComboBoxRenderer.IsSupported プロパティは、アプリケーション ウィンドウのクライアント領域でビジュアル スタイルが有効になっているかどうかを確認するために使用されます。 ビジュアル スタイルがアクティブな場合、ComboBoxRenderer.DrawDropDownButton メソッドはビジュアル スタイルを使用してドロップダウン矢印をレンダリングします。それ以外の場合、ControlPaint.DrawComboButton メソッドは従来の Windows スタイルでドロップダウン矢印をレンダリングします。
例
// 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
コードのコンパイル
この例で必要な要素は次のとおりです。
Control クラスから派生したカスタム コントロール。
カスタム コントロールをホストする Form。
System、System.Drawing、System.Windows.Forms、および System.Windows.Forms.VisualStyles 名前空間への参照。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback