ToolStripComboBoxItem箭头不绘制所需的颜色(VS.Net 2010,WinForms)

时间:2012-08-04 16:34:54

标签: c# .net vb.net visual-studio-2010

我正在使用继承自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

1 个答案:

答案 0 :(得分:0)

ToolStripComboBox是一个常规的组合框,托管在ToolStripControlHost中。 ToolStripItem箭头与菜单子指示符一样,与之无关。您可以在此处使用代码自定义绘制ComboBox:Painting right arrow in ToolStripComboBox