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