2016-06-12 15 views
-2

Добрый день, я хочу изменить цвет элемента меню в моем менюStrip, когда я нависаю над ним. Может кто-нибудь мне помочь?C# как изменить menuStrip hover color?

enter image description here

+0

нет, это не так. Я хочу изменить основной цвет наведения, и в этом вопросе ничего нет. –

+0

Цвет текста? – Shaharyar

+0

нет, текст фона –

ответ

1

Вы не можете сделать это с помощью обычных MouseEnter и MouseLeave события. Вам нужно напрямую переопределить визуализацию меню. Вы можете сделать что-то вроде этого, используя 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; } 
    } 
} 

И только в случае, если вам интересно, это то, что происходит, когда вы используете MouseEnter и MouseLeave события. (Внутри 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

 Смежные вопросы

  • Нет связанных вопросов^_^