C# 如何改变 menuStrip 的悬停颜色?

C# how to change menuStrip hover color?

大家好,我想在将鼠标悬停在 menuStrip 上时更改菜单项的颜色。谁能帮帮我?

您不能使用正常的 MouseEnterMouseLeave 事件来执行此操作。您需要直接覆盖菜单渲染。你可以这样做,使用 MenuStrip class:

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 变为绿色,但并未调用):