.NET Winform пользовательских форм - необходимо вернуть диалограмму или как-то предотвратить асинхронные события

StackOverflow https://stackoverflow.com/questions/3693337

  •  02-10-2019
  •  | 
  •  

Вопрос

У меня есть форма, которая называет пользовательскую дочернюю форму. Детская форма в основном является всплывающим окном, который получает некоторые пользовательские данные.

Я хочу родительскую форму для обработки информации, возвращаемой дочерней формой.

Проблема в том, что родительская форма вызывает ребенка и не ждет ответа.

В идеале я хотел бы сделать дочернюю форму вернуть диалограмму. Функционально это понятно, что происходит (тем более, что у пользователя есть возможность отменить элемент управления дочерним управлением) и кажется простой способ заставить родителя ждать. Я не разобрался, как это сделать, хотя.

Вторичная проблема заключается в том, что родительское управление выходит за пределы события ChildDialog.show () и пытается обработать информацию о дочернем управлении. Который еще не изменился.
Настройка состояния с использованием публичных значений контроля над ребенком, например ChildDialog.userClickedok, не делайте ничего, чтобы помочь, поскольку значения по умолчанию все еще действуют.

Что я с видом?

Спасибо всем! :)

Это было полезно?

Решение

Вам нужно показать форму модули, используя ShowDialog вместо шоу. Внутри вашей дочерней формы вы устанавливаете диалограмму к тому, что имеет наибольшее значение, учитывая пользовательское взаимодействие, которое произошло раньше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top