I am rendering a toolstrip with a CustomRenderer that inherits from ToolStripProfessionalRenderer. The concept is that I want the color of the arrow of the toolstrip items to be white in all cases except selection. When it is selected the color should be black. In my code below all arrows are painted accordingly except the ToolStripComboBox where the color of the arrow always remains the same; the default one. How to sort it out?
Hope I don't need to write the whole class but only the relevant fragment. So I uploaded the OnRenderArrow method only.
To render the toolstrip with the pertinent class:Code: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
Code:MyToolStrip.Renderer = New CustomRenderer


Reply With Quote



Bookmarks