如何在悬停和点击时更改ToolStripMenuItem的默认背景颜色?

时间:2015-10-09 20:53:46

标签: c# winforms visual-studio-2015

试图让我的用户界面更像Windows。我正在测试项目的一些事件,并尝试使用BackColor属性控制背景,但无济于事。有没有方便的方法来改变默认颜色?

提前致谢。

The menu item's back color turns light-blue when hovered by the cursor.

When an item is clicked, its back color turns light-gray, making the item's text hardly visible.

1 个答案:

答案 0 :(得分:0)

只需从ProfessionalColorTable创建您的ow颜色表。

private class MyColours : ProfessionalColorTable
{
    public override Color MenuItemSelected
    {
        get { return Color.Blue; }
    }
    public override Color MenuItemSelectedGradientBegin
    {
        get { return Color.DarkCyan; }
    }
    public override Color MenuItemSelectedGradientEnd
    {
        get { return Color.Cyan; }
    }

    public override Color MenuItemPressedGradientBegin
    {
        get { return Color.Cyan; }
    }

    public override Color MenuItemPressedGradientEnd
    {
        get { return Color.Cyan; }
    }
}

添加另一个类来渲染这些颜色,如下所示。

private class NewColourRenderer : ToolStripProfessionalRenderer
{
    public NewColourRenderer(): base(new MyColours()){}            
}

然后在表单加载事件中使用新的渲染器:

menuStrip1.Renderer = new NewColourRenderer();