Форум программистов, компьютерный форум, киберфорум
.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
5 / 5 / 1
Регистрация: 01.10.2008
Сообщений: 85

UserControl vs Control.Leave - событие Leave происходит только в рамках одного контейнера

30.04.2009, 15:19. Показов 1718. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулись с таким глюком.

1. Создаем UserControl
2. Кладем на него TextBox'
3. Цепляем на TextBox.Leave событие, в теле обработчика пишем строку Trace.WriteLine( 'UserControl.TextBox.Leave' )
4. Кладем UserControl на форму
5. Кладем на ту же форму ЕЩЕ ОДИН TextBox
6. Цепляем на TextBox.Leave событие, в теле обработчика пишем строку Trace.WriteLine( 'Form.TextBox.Leave' )
7. Запускаем
8. Ставим фокус на тот TextBox, который лежит на форме (а не на UserControl'е)
9. Ставим фокус на другой TextBox. В этот момент происходит событие Leave, и в окно отладки выводится строка Form.TextBox.Leave
10. Ставим фокус ОБРАТНО НА ПЕРВЫЙ TextBox. И вот ведь что интересно: событие Leave не происходит!

Немного поисследовав, мы обнаружили, что событие Leave происходит только в рамках одного контейнера. То есть, другими словами, если у нас поле ввода и кнопка Ok лежат в разных контенерах, то при нажатии на кнопку валидация, к примеру, в поле ввода не произойдет.
Кроме валидации, на фокусных событиях также висит DataBinding и еще кое-какие наши штучки.

Так вот вопрос к уважаемой общественности: как это обойти? Использовать вместо UserControl просто Control не предлагать - сам знаю.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.04.2009, 15:19
Ответы с готовыми решениями:

Игнорирование enter and leave events
есть ли какой-нибудь флаг игнорирования enter и leave events, чтобы не переопределять методы виджета?

Hover-leave эффект для элементов Windows.Forms
Здравствуйте. Есть форма (диалоговое окно), с 3 элементами управления (BackColor для них установлен в Transparent). Так вот, при...

LabelMouseEnter / Leave как реализовать на активном, при n-ом количестве?
Есть форма, на ней n-ое количество label, при наведении на него должен меняться цвет фона, при уходе курсора цвет меняется назад. С одним...

3
0 / 0 / 0
Регистрация: 22.03.2009
Сообщений: 40
01.05.2009, 16:18
Да, форум точно вымер...
0
1 / 1 / 5
Регистрация: 29.11.2008
Сообщений: 179
05.05.2009, 03:56
Валидацию логично повесить на событие Validating.
В текстбоксе внутри юзерконтрола работает.
0
5 / 5 / 1
Регистрация: 01.10.2008
Сообщений: 85
05.05.2009, 16:48  [ТС]
:-)))
БЛИН! Да не моя валидация-то. Я бы ее перевесил куда скажут, только бы заработало. ВСТРОЕННАЯ валидация-то не работает. Это самое событие Validating в том числе.
Ну и вообще, не в одной валидации дело.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2009, 16:48
Помогаю со студенческими работами здесь

Static function 'void leave(char *)' declared but not defined
скорее всего у меня ошибка с инклюдами и хедер файлами вроде нагугил глобальные переменные через экстерн а как статические функции в хедер...

О двоичной совместимости версий проектов в рамках одного решения, после пересборки только одного из них
Коллеги, всем мое почтение! Есть решение для .NET, в котором мой проект ASP.NET WebForms. На инструментальной машине разработчика я...

Какое событие происходит при высвобождении Control
Привет! У меня есть одна единственная модель и у нее много ее контролов, через которые она может управляться. Контролы получают от...

Событие происходит только один раз
Простой тестовый код: namespace ConsoleApplication7 { public delegate void EHandler(object sender,string message); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru