ToolStripProfessionalRenderer から継承する CustomRenderer を使用してツールストリップをレンダリングしています。コンセプトは、ツールストリップ項目の矢印の色を選択以外のすべての場合に白くしたいということです。選択されている場合、色は黒でなければなりません。以下の私のコードでは、矢印の色が常に同じままである ToolStripComboBox を除いて、すべての矢印がそれに応じてペイントされます。デフォルトのもの。それを整理する方法は?
クラス全体を書く必要はなく、関連するフラグメントだけを書く必要があることを願っています。なので、OnRenderArrow メソッドのみをアップロードしました。
Friend Class CustomRenderer
Inherits ToolStripProfessionalRenderer
Sub New()
End Sub
Protected Overrides Sub OnRenderArrow(ByVal e As System.Windows.Forms.ToolStripArrowRenderEventArgs)
If e.Item.Pressed Then
e.ArrowColor = Color.White
ElseIf e.Item.Selected Then
e.ArrowColor = SystemColors.ControlText
Else
e.ArrowColor = Color.White
End If
MyBase.OnRenderArrow(e)
End Sub
End Class
関連するクラスを使用してツールストリップをレンダリングするには:
MyToolStrip.Renderer = New CustomRenderer