C#如何更改menuStrip悬停颜色?

时间:2016-06-12 18:27:21

标签: c# colors menustrip

美好的一天,当我将鼠标悬停在它上面时,我想改变menuStrip菜单项的颜色。任何人都可以帮助我吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

您无法使用正常MouseEnterMouseLeave事件执行此操作。您需要直接覆盖菜单呈现。您可以使用MenuStrip类:

执行此类操作
private class renderer : ToolStripProfessionalRenderer {
    public renderer() : base(new cols()) {}
}

private class cols : ProfessionalColorTable {
    public override Color MenuItemSelected {
        // when the menu is selected
        get { return Color.Blue; }
    }
    public override Color MenuItemSelectedGradientBegin {
        get { return Color.Black; }
    }
    public override Color MenuItemSelectedGradientEnd {
        get { return Color.White; }
    }
}

如果您感兴趣,这就是使用MouseEnterMouseLeave事件时会发生的情况。 (在MouseEnter事件中,它使BackgroundColor为绿色,但未被调用:

Only the leave event was been called.