MenuStrip选定的颜色

时间:2015-07-16 17:36:55

标签: c# winforms menustrip

我查看了StackOverflow的所有搜索结果都无济于事,包括:How to change menu hover color

我有一个菜单条,黑色,白色字体颜色。选择它时,字体会保持白色,但框也会变为白色。如何设置"选择"菜单项的背面颜色?

选择"选择"我的意思是你点击了菜单选项。不要盘旋。

https://msdn.microsoft.com/en-us/library/System.Windows.Forms.ProfessionalColorTable(v=vs.110).aspx

我检查了这一点,但没有一个针对顶级菜单项。

enter image description here

    private class MyRenderer : ToolStripProfessionalRenderer
    {
        public MyRenderer() : base(new MyColors()) { }
    }

    private class MyColors : ProfessionalColorTable
    {
        public override Color ToolStripDropDownBackground
        {
            get { return Color.Black; }
        }
        public override Color MenuItemSelectedGradientBegin
        {
            get { return Color.Gray; }
        }
        public override Color MenuItemSelectedGradientEnd
        {
            get { return Color.Red; }
        }
    }

1 个答案:

答案 0 :(得分:-2)

使用MenuItemPressedGradientBegin / End而不是MenuItemSelectedGradientBegin / End来更改“主”栏的颜色。

Menu.Renderer = new MyRenderer();

private class MyRenderer : ToolStripProfessionalRenderer
{
    public MyRenderer() : base(new MyColors()) { }
}

private class MyColors : ProfessionalColorTable
{
    public override Color MenuItemPressedGradientBegin
    {
        get { return Color.Gray; }
    }

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