Как Изменить Передний Цвет Toolstripmenuitem На Mousehover На Menustrip..
Как я могу изменить ForeColor toolstripMenuItem на MouseHover на MenuStrip в приложении win form?
Пожалуйста помочь.
Вы можете использовать события MouseEnter &mouseleave для получения таких эффектов.
private void myToolStripMenuItem_MouseEnter(object sender, EventArgs e) { ((ToolStripMenuItem)sender).ForeColor = Color.Blue; //new color } private void myToolStripMenuItem_MouseLeave(object sender, EventArgs e) { ((ToolStripMenuItem)sender).ForeColor = Color.Gray; //original color }
Мой голос № 1: этот код не будет компилироваться по очевидным причинам. Вам нужно протестировать свой код перед публикацией.
Извините за неправильный код.
Обновлять его. Теперь все в порядке?
Спасибо :)
Почему вы спрашиваете меня, а не запускаете свой код и позволяете компилятору сказать вам, работает ли он ?
правда :D
Интересно, если " цвет.Серый цвет допустим в WinForms, когда ОС, Visual Studio и т. д. настроены на использование хинди-урду/деванагри ?
Потому что он определенно не может быть использован в моей английской победе. Только Цвет.Грей работает здесь.
Я считаю это "слабой гипотезой" с точки зрения объяснения того, почему ваш код будет работать ... все еще... не компилируется в моей системе.
Конечно, я не предполагаю, что только потому, что вы находитесь в Индии, вы обязательно используете хинди-урду для программирования; на самом деле, я бы поспорил, что вы программируете на английском языке.
Но, я полагаю, учитывая, что "серый" - это предпочтительное написание в стандартном британском английском, что оно может быть действительным в Индии.
Извини, Билл, но из-за моей маленькой опечатки тебе пришлось потратить так много времени на написание комментариев.
Ответ Обновлен.
Спасибо :)
Этот вопрос указывает мне, что вам нужно изучить основы событий и обработчиков событий в C# .NET.
Вам нужно щелкнуть правой кнопкой мыши во время разработки на элементах управления, поведение которых вы хотите изменить, выбрать пункт "Свойства" в меню, а затем изучить события в браузере свойств для этого элемента управления. Вам нужно дважды щелкнуть те перечисленные события, которые вас интересуют, а затем перейти к наблюдению/изучению кода EventHandler, сгенерированного для вас Visual Studio.
Вам необходимо ознакомиться с документацией по этим событиям.
Если вы не изучите этот фундаментальный аспект проектирования и кодирования приложений .NET C#, вы никогда не сможете написать полезный код. Изучая события, вы можете получить общее представление о том, как для каждого элемента управления запускаются определенные общие события, такие как "MouseEnter", "MouseMove", "MouseLeave" и т. д. Затем для конкретных элементов управления определенного типа, таких как 'Textbox и 'RichTextBox (оба из которых наследуются от 'TextBoxBase), вы поймете, что существуют определенные события, которые другие элементы управления не разделяют, например 'TextChanged.
Хорошая новость заключается в том, что это не так уж трудно узнать ! Вот как это делается:
Создайте примеры приложений, в которых вы экспериментируете с предоставленными элементами управления и их событиями/обработчиками событий; поместите точки останова в обработчики событий и, когда они будут достигнуты во время выполнения в ответ на ваше взаимодействие с элементами управления, проверьте доступные свойства, поля в объекте EventArgs, переданном обработчику событий.
Вот что я замечал все чаще и чаще, и это довольно постоянно среди форумов разработчиков. И именно тогда, когда кто-то задает вопрос (независимо от его опыта), ответ, кажется, попадает в одну из двух категорий "отношения":
1. Вопрос ответ с рекомендациями.
2. на вопросы не дается ответа, но вместо этого проводится критический анализ мышления, опыта и рассуждений просителя.
По моему опыту, № 2-это мышление тех, кто занимает более высокий "рейтинг" на форуме, чем запрашивающий (то есть больше значков, Очков, Репутации и т. д.).
Кроме того, те, кто следует за № 2, обычно (где-то в своем ответе) никогда не упускают возможности посоветовать просящему что-то "узнать", прежде чем спрашивать. Или, точнее, заявить, что, задавая вопрос, они, очевидно, ничего не знают о предмете или задаче, которую они пытаются выполнить.
Я нахожу это несколько ироничным по нескольким причинам. Во-первых, все знания приобретаются путем исследований и практики. Примером первого может служить, например, чтение форумов по вопросам развития (таких, как этот).
Во-вторых, рост знаний происходит тогда, когда задаются вопросы и получаются ответы. Примером этого может служить, например, публикация вопроса и получение ответов от более опытных коллег, которые сами ищут ответы в надежде расширить свои знания (своего рода циклическое партнерство).
В чем тут ирония? Дело в том, что те, кто следует № 2, редко дают ответы, но большинство всегда дают справедливую критику. И критика, похоже, варьируется от стиля кодирования до предметного знания и грамматики, которую они используют. Всегда неконструктивная критика. Короче говоря, они защищают именно то, что они душат.
Для тех, кто следует шаблону № 2, Могу ли я предложить следующее:
1. Если вы не собираетесь давать ответ или конструктивно получать ответ, не отвечайте на сообщение.
2. Если вы находитесь в плохом настроении или у вас плохой день, и вы ищете средство, чтобы выплеснуть свое разочарование.. не отвечайте ни на одно сообщение.
3. Если вы думаете, что вы лучше, чем большинство здесь, и обнаруживаете, что вас оскорбляет то, что нуб может задать такой "глупый" вопрос.. не часто посещайте форумы, пожалуйста.
4. Если ваш статус на форуме каким-то образом даровал вам статус высшего существа, и вы полностью забыли, каково это-быть нубом ... не посещайте этот форум.
И, наконец, (#5): Если ваше знание предмета и развитие в целом были каким-то образом генетически получены при вашем зачатии.. тогда я приветствую вас и завидую вам. Остальным придется учиться этому на собственном горьком опыте.
Мои 2 цента стоят.
И мой вклад (хотя и запоздалый, но на всякий случай, если он все еще нужен):
Существует отличный способ сделать то, что хочет запрашивающий, используя пользовательский рендерер. Вот ссылка на вопрос MSDN, который объясняет, как это сделать:
https://social.msdn.microsoft.com/Forums/windows/en-US/140096de-05d3-4d7e-8d4c-9f277bc72ddb/change-backcolor-and-forecolor-when-hovering-menu-items-of-menustrip?forum=winforms
Желаю Всем отличного дня!
Что на самом деле является ирония заключается в том, что, опубликовав этот "2 цента", вы не последовали своему собственному совету. Я сомневаюсь, что кто-нибудь прочтет достаточно этой диатрибы, чтобы понять, что в конце ее действительно есть подлинное решение. Ваши разглагольствования, вероятно, соберут большую аудиторию гостиная[^] или Дискуссионные Доски Мыльницы[^- Я предлагаю вам оставить их там.