Windows標準コントロールの外観と同じものを描画する 最終更新日 2003年8月7日 0:00 ControlPaintクラスのメソッドを利用することで、Windows標準コントロールの外観と同じものを描画することができる。 なお、.NET Framework 2.0以降ではSystem.Windows.Forms.VisualStyles名前空間のクラスを用いることもできる。 C# VB 別ウィンドウで開く すべて選択してコピー ダウンロード 行番号を表示する private void Form1_Paint( object sender, System.Windows.Forms.PaintEventArgs e ) { // 枠線、隆起 ControlPaint.DrawBorder3D( e.Graphics, 10, 10, 50, 50, Border3DStyle.Bump ); // 枠線、沈降 ControlPaint.DrawBorder3D( e.Graphics, 80, 10, 50, 50, Border3DStyle.Sunken ); // 右側と左側だけ ControlPaint.DrawBorder3D( e.Graphics, 10, 80, 50, 50, Border3DStyle.Bump, Border3DSide.Left Or Border3DSide.Right ); // スクロールバーのボタン (左側) ControlPaint.DrawScrollButton( e.Graphics, 80, 80, 15, 15, ScrollButton.Left, ButtonState.Normal ); // スクロールバーのボタン (最大値、クリック時) ControlPaint.DrawScrollButton( e.Graphics, 80, 100, 15, 15, ScrollButton.Max, ButtonState.Checked ); // スクロールバーのボタン (上側、押されている状態) ControlPaint.DrawScrollButton( e.Graphics, 100, 80, 15, 40, ScrollButton.Up, ButtonState.Pushed ); // チェックボックス ControlPaint.DrawCheckBox( e.Graphics, 120, 80, 15, 15, ButtonState.Checked ); // ラジオボタン ControlPaint.DrawRadioButton( e.Graphics, 140, 80, 15, 15, ButtonState.Checked ); } 別ウィンドウで開く すべて選択してコピー ダウンロード 行番号を表示する Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint ' 枠線、隆起 ControlPaint.DrawBorder3D(e.Graphics, 10, 10, 50, 50, Border3DStyle.Bump) ' 枠線、沈降 ControlPaint.DrawBorder3D(e.Graphics, 80, 10, 50, 50, Border3DStyle.Sunken) ' 右側と左側だけ ControlPaint.DrawBorder3D(e.Graphics, 10, 80, 50, 50, Border3DStyle.Bump, Border3DSide.Left Or Border3DSide.Right) ' スクロールバーのボタン (左側) ControlPaint.DrawScrollButton(e.Graphics, 80, 80, 15, 15, ScrollButton.Left, ButtonState.Normal) ' スクロールバーのボタン (最大値、クリック時) ControlPaint.DrawScrollButton(e.Graphics, 80, 100, 15, 15, ScrollButton.Max, ButtonState.Checked) ' スクロールバーのボタン (上側、押されている状態) ControlPaint.DrawScrollButton(e.Graphics, 100, 80, 15, 40, ScrollButton.Up, ButtonState.Pushed) ' チェックボックス ControlPaint.DrawCheckBox(e.Graphics, 120, 80, 15, 15, ButtonState.Checked) ' ラジオボタン ControlPaint.DrawRadioButton(e.Graphics, 140, 80, 15, 15, ButtonState.Checked) End Sub 実行結果 ここで紹介した以外にも様々なコントロールを描画できる。 ただし、Windows XPスタイルの外観を持つコントロールを描画するには、UxTheme.dll等を使う必要がある。