2016-06-12 4 views
-2

こんにちは、私はそれを上に移動すると、メニューのメニューの色を変更したいと思います。誰でも助けてくれますか?C#メニューストリップのホバーカラーを変更するには?

enter image description here

+0

いいえ、それはありません。私はメインアイテムのホバー色を変更したい、その質問には何もありません –

+0

テキストの色は? – Shaharyar

+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.

+0

まさに私が探していたものです、ありがとうございました。 –

+0

私は助けてくれてうれしいです。 'ProfessionalColorTable'クラスでもっと多くのことを行うことができます。このMSDNの記事を参照してください。https://msdn.microsoft.com/en-us/library/System.Windows.Forms.ProfessionalColorTable(v=vs.110).aspx – carefulnow1

+0

ここでは、「Enter」と「Leave」メソッドがあります話しているの?背景が緑色になっていたのはなぜですか? – Shaharyar

関連する問題