c# - 如何更改菜单悬停颜色

标签 c# winforms winapi

如何更改 Windows 应用程序菜单的悬停(鼠标悬停)颜色?

C# 中的任何方法?

使用 Windows API (DllImport) 有什么办法吗?

看图:

enter image description here

最佳答案

您正在使用 MenuStrip 类。您可以覆盖其渲染器。这是一个示例,请选择您自己的颜色。

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        menuStrip1.Renderer = new MyRenderer();
    }

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

    private class MyColors : ProfessionalColorTable {
        public override Color MenuItemSelected {
            get { return Color.Yellow; }
        }
        public override Color MenuItemSelectedGradientBegin {
            get { return Color.Orange; }
        }
        public override Color MenuItemSelectedGradientEnd {
            get { return Color.Yellow; }
        }
    }
}

ProfessionalColorTable 的其他属性控制其他颜色元素。

关于c# - 如何更改菜单悬停颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9260303/

相关文章:

c# - 在 C# 中从 WM_MOUSEHWHEEL 消息中的 wParam 检索 WHEEL_DELTA

c# - 在 C# 中格式化日期

c# - Delphi 4 和/或 Delphi 5 可执行文件能否集成到 C# 应用程序中?

c# - 如何在 visual studio、C# 项目的部署中包含文件和文件夹?

c# - View style设置为Details时如何在Winforms ListView中显示图标和文字?

c# - 无法在表单中找到 {Microsoft.VisualBasic.PowerPacks.RectangleShape} 控件

c++ - 滚动大图像故障的 MSDN 示例

c++ - 我在 win32 窗口专用应用程序中创建了一个新控制台,控制台已创建但没有任何内容打印在上面

c++ - 唯一标识 OpenCV 相机

c# - linq Last() 如何确定最后一项?