| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Событие LostFocus не срабатывает при нажатии TAB |
| Автор: flyerarchi 19.9.2009, 16:15 | ||||||
| Добрый день! Столкнулся с такой проблемкой: на форме размещено очень много текстбоксов, необходимо, чтобы при переходе от одного текстбокса к другому менялся BackColor текстбокса (тот который активен - синий, остальные - белые). Прописывать смену BackColor для каждого контрола в событиях Enter и Leave - придется писать для каждого контрола свой код (что не очень хочется)
Хочу заменить этот код на две универсальные функции, которые вызываются при наступлении событий Enter и Leave, для всех текстбоксов, подписанных на эти события. Если делать через
то как менять BackColor для контрола, у которого произошло событие Leave, он ведь больше не является ActiveControl? Попробовал действовать не через Enter/Leave, а через GotFocus/LostFocus, все получилось, т.к. событие LostFocus возникает раньше Leave и код
нормально работает. Но вот беда, все хорошо при переключении между контролами мышью, а вот при переходе клавишей Tab функция, вызываемая при событие LostFocus работает неправильно. Почему то текстбокс, потерявший фокус не меняет BackColor. В чем проблема? |
| Автор: Heinzz 19.9.2009, 17:56 | ||
так все работает обработчики событий одни на все текстбоксы |
| Автор: ДобренькийПапаша 19.9.2009, 21:54 |
| Выделите все свои текстбоксы зажав клавишу ctrl выберите события и кликнике дважды на соответственно Leave и Enter. Вы получите одну реакцию для всех текстбоксов на соответствующее событие)))) |
| Автор: Lunatic2009 19.9.2009, 22:53 | ||
Можно сделать что-то типа этого:
|
| Автор: flyerarchi 20.9.2009, 20:38 |
| Как всегда, все гениальное - просто! Спасибо! |