Страницы: 1
RSS
Изменить цвет фона Лабела по событию MouseMove
 
Добрый вечер! Целый день не могу найти, как сделать такое:
На форме есть определённое количество Лабелов. Их со временем будет больше.
Когда наводишь курсор мишки на любой из них  - чтобы его фон подсвечивался цветом, - остальные остаются без фона. (типа как на этом сайте)
Читал про массив объэктов, - самому не под силу это использовать.
Также не могу понять ещё про классы, и как применить это к моему вопросу.
Может применить Tag как-то, - на всякий случай - тэги все у этих лабелов "Ob_Lbl_Fon"
(прилагается файл с формой и лабелами)
Спасибо!
 
Классы позволят избежать необходимости для каждого объекта прописывать хоть и маленький но код. в остальном будет все тоже, при этом для сброса "фокуса" нужно использовать подложку, при попадании на которую сбрасываются подсветки ваших меток. Если опыта с классами нет и количество элементов не заоблачное, то проще сделать обычной обработкой событий.
Изменено: БМВ - 18.10.2020 19:33:25
По вопросам из тем форума, личку не читаю.
 
Сделала на "лабел "Дотати"", остальное допиливайте сами по примеру
Код
Private Sub Fr_Kl_Fon_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Lbl_FrKl_AddKlienta.BackStyle = 0
End Sub
Код
Private Sub Lbl_FrKl_AddKlienta_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Lbl_FrKl_AddKlienta.BackStyle = 1
Lbl_FrKl_AddKlienta.BackColor = 255
End Sub
 
БМВ, Лабелов не будет заоблачное количество, - но около сотни насобирается. Для каждого писать отдельное событие, - я думаю тут не кстати будет.
обложка есть - это Fr_Kl_Fon(Frame)

Настя_Nastya,таким способом я знаю как сделать... но тоже самое, - нужно писать для каждого лабела отдельное событие. Для сотни лабелов это будет много лишней работы.

Знаю, что есть более простой способ сделать для всех лабелов не большим кодом. Но как это сделать - увы не по моим силам...
Спасибо за ответы!
Изменено: vanya7819 - 18.10.2020 20:04:30
 
Доброе время суток.
Вариант.
 
Андрей VG,  да, думаю то, что нужно! Большое Спасибо, Вам! Буду разбиратся  с кодом, для меня это что-то новое.
 
Андрей VG,   нужна ещё одна поправочка... Когда наводишь мышкой на лабел - всё срабатывает хорошо, но когда курсор не наведён ни на один из лабелов, - заливка остаётся на последнем лабеле по которому прошлась мышка, а должна пропадать: ".BackStyle = 0"  (как на этом сайте).
Спасибо!
 
Цитата
БМВ написал:
при этом для сброса "фокуса" нужно использовать подложку, при попадании на которую сбрасываются подсветки ваших меток.
По вопросам из тем форума, личку не читаю.
 
БМВ, да, Вы сразу правильно заметили... ) Спасибо!
Изменено: vanya7819 - 19.10.2020 16:09:06
 
Андрей VG, если не сложно, при возможности, пожалуйста поправьте код, чтобы подсветка была только при наведение на Label, если мышка не на лабелах, - тогда подсветка исчезает. Спасибо! Мне это пока что не удаётся. В классах я не силён к сожалению.
Спасибо!
 
Ребята, Андрей VG, не отвечает...  Может кто-нибудь подправить код для полноты выполнения условия согласно #10
Спасибо!
 
Подсоблю, подниму тему, а то что-то макрушники расслабились.
По вопросам из тем форума, личку не читаю.
 
Тут мы. Чуть измененный вариант Андрея - надеюсь, не обидится на нарушение авторских прав (а г-н фон Лабел за изменение его цвета). :)  
Изменено: sokol92 - 18.11.2020 23:05:01
Владимир
 
sokol92, Спасибо, Вам, большое! Всё работает, как нужно! )
 
Успехов!
Владимир
Страницы: 1
Наверх