Есть ли способ, с помощью которого основная форма может перехватывать события, запускаемые в подчиненном элементе управления пользовательского элемента управления?
У меня есть пользовательский элемент управления, встроенный в основную форму моего приложения. Элемент управления содержит различные подэлементы управления, которые управляют данными, которые сами отображаются другими элементами управления в основной форме. Я бы хотел, чтобы основная форма могла быть каким-то образом проинформирована, когда пользователь меняет подэлементы управления, чтобы я мог обновлять данные и соответствующий дисплей в другом месте.
Сейчас я обманываю. У меня есть делегат, подключенный к событию выхода из фокуса подэлементов управления. Этот делегат изменяет свойство пользовательского элемента управления, которое я больше нигде не использую (в данном случае CausesValidation). Затем у меня есть делегат, определенный в основной форме для случая изменения свойства CausesValidation пользовательского элемента управления, который затем указывает приложению обновить данные и отобразить их.
Проблема возникает из-за того, что у меня также есть делегат, настроенный на то, когда фокус покидает пользовательский элемент управления, потому что мне нужно проверить поля в пользовательском элементе управления, прежде чем я смогу разрешить пользователю делать что-либо еще. Однако, если пользователь просто переключается между подэлементами управления, я не хочу проверять, потому что они могут не редактироваться.
По сути, я хочу, чтобы данные обновлялись, когда пользователь переключает субэлементы управления ИЛИ покидает пользовательский элемент управления, но не проверяет. Когда пользователь покидает элемент управления, я хочу обновить И проверить. Прямо сейчас выход из пользовательского элемента управления приводит к двойному срабатыванию проверки.