4

所以在我的上下文菜单条上,我想更改所选项目的颜色。例如,我希望菜单项“关于我”在突出显示时将颜色从白色更改为黑色。这是我一直在尝试的:

        ContextMenuStrip CMS = new ContextMenuStrip();
        CMS.ForeColor = Color.White;
        CMS.ShowImageMargin = false;
        var item = CMS.Items.Add("About Me", null);
        item.MouseHover += new EventHandler(CMS_MouseHover);

   void CMS_MouseHover(object sender, EventArgs e)
    {
        ContextMenuStrip CMS = sender as ContextMenuStrip;
        CMS.ForeColor = Color.Black;
    }

我也尝试过使用 ToolStripMenuitem 事件处理程序,但我认为它不会在这里应用?

关于我如何做到这一点的任何建议?

我也想知道是否有办法改变高亮颜色,我知道这取决于你的系统,但我只是想知道。

4

1 回答 1

10

我不相信这是最好的方法,但一种可能的方法是连接 ContextMenuStrip 上各个 ToolStripMenuItems 上的 MouseEnter 和 MouseLeave 事件。

例如:

    private void aboutToolStripMenuItem_MouseEnter(object sender, EventArgs e)
    {
        ToolStripMenuItem TSMI = sender as ToolStripMenuItem;
        TSMI.ForeColor = Color.Black;
    }

    private void aboutToolStripMenuItem_MouseLeave(object sender, EventArgs e)
    {
        ToolStripMenuItem TSMI = sender as ToolStripMenuItem;
        TSMI.ForeColor = Color.White;
    }

显然,您还需要在以编程方式创建的 ToolStripMenuItem 上连接事件处理程序。

您似乎正在尝试使用“CMS.ForeColor = Color.Black”更改整个 ContextMenuStrip 的 ForeColor,这不是您所说的想要的。尝试了上述方法,它确实有效。

于 2012-09-10T11:30:57.543 回答