.NET Winform пользовательских форм - необходимо вернуть диалограмму или как-то предотвратить асинхронные события
-
02-10-2019 - |
Вопрос
У меня есть форма, которая называет пользовательскую дочернюю форму. Детская форма в основном является всплывающим окном, который получает некоторые пользовательские данные.
Я хочу родительскую форму для обработки информации, возвращаемой дочерней формой.
Проблема в том, что родительская форма вызывает ребенка и не ждет ответа.
В идеале я хотел бы сделать дочернюю форму вернуть диалограмму. Функционально это понятно, что происходит (тем более, что у пользователя есть возможность отменить элемент управления дочерним управлением) и кажется простой способ заставить родителя ждать. Я не разобрался, как это сделать, хотя.
Вторичная проблема заключается в том, что родительское управление выходит за пределы события ChildDialog.show () и пытается обработать информацию о дочернем управлении. Который еще не изменился.
Настройка состояния с использованием публичных значений контроля над ребенком, например ChildDialog.userClickedok, не делайте ничего, чтобы помочь, поскольку значения по умолчанию все еще действуют.
Что я с видом?
Спасибо всем! :)
Решение
Вам нужно показать форму модули, используя ShowDialog вместо шоу. Внутри вашей дочерней формы вы устанавливаете диалограмму к тому, что имеет наибольшее значение, учитывая пользовательское взаимодействие, которое произошло раньше.