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



我正在使用从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

ToolStripComboBox 是一个托管在 ToolStripControlHost 中的常规组合框。ToolStripItem 箭头如前所述是菜单子指示器,与此无关。您可以在此处利用代码自定义绘制组合框:在 ToolStripComboBox 中绘制向右箭头

最新更新