Добрый день, я хочу изменить цвет элемента меню в моем менюStrip, когда я нависаю над ним. Может кто-нибудь мне помочь?C# как изменить menuStrip hover color?
ответ
Вы не можете сделать это с помощью обычных 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
зеленый, однако, что не было названо):
именно то, что я искал, спасибо вам, сэр. –
Рад, что я мог помочь. Обратите внимание, что вы можете сделать намного больше с классом 'ProfessionalColorTable'. См. Эту статью MSDN: https://msdn.microsoft.com/en-us/library/System.Windows.Forms.ProfessionalColorTable(v=vs.110).aspx – carefulnow1
Где находятся методы 'Enter' и' Leave' «Говорят? Почему фон должен был быть зеленым? – Shaharyar
нет, это не так. Я хочу изменить основной цвет наведения, и в этом вопросе ничего нет. –
Цвет текста? – Shaharyar
нет, текст фона –