ToolStripButtonの外観を変更する。(WinForms)
ToolStripProfessionalRendererを継承して好きなように描画する。
下記の例は
・ToolStripButtonに枠線を描画する
・ToolStripの角丸をやめる
の二点を行う例。
ToolStrip1.Renderer = New ToolStripRectRenderer() ''' <summary> ''' ToolStrip オブジェクトの描画機能を、カスタムのパレットおよび簡素化されたスタイルを適用することによって処理します。 ''' </summary> ''' <remarks>ツールバーの角丸やめる。ボタンに枠線を描く。</remarks> Private Class ToolStripRectRenderer Inherits ToolStripProfessionalRenderer #Region "コンストラクタ" ''' <summary> ''' クラスの新しいインスタンスを初期化します。 ''' </summary> Public Sub New() ' 角丸をやめる。影がツールバー右端下側にゴミのように見えるため。 RoundedEdges = False End Sub #End Region #Region "オーバーライドされたメソッド" ''' <summary> ''' RenderButtonBackground イベントを発生させます。 ''' </summary> ''' <param name="e">イベント データを格納している System.Windows.Forms.ToolStripRenderEventArgs。</param> Protected Overrides Sub OnRenderButtonBackground(e As ToolStripItemRenderEventArgs) MyBase.OnRenderButtonBackground(e) If e.Item.Selected Then Return End If ' ボタンに枠線を表示する。 Dim bounds = New Rectangle(Point.Empty, e.Item.Size) bounds.Width -= 1 bounds.Height -= 1 e.Graphics.DrawRectangle(SystemPens.ButtonShadow, bounds) End Sub #End Region End Class