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

これが最善の方法であるとは思いませんが、これを行うための1つの可能な方法は、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にもイベントハンドラーを接続する必要があります。

ContextMenuStrip全体のForeColorを「CMS.ForeColor=Color.Black」で変更しようとしているようですが、これはあなたが望んでいたことではありません。上記を試してみましたが、動作します。

于 2012-09-10T11:30:57.543 に答える