Как вернуть результат работы диалогового окна в момент его закрытия?

Всем известен метод MessageBox.Show(), возвращающий значение DialogResult после закрытия диалога. Как я могу реализовать такой метод в своем диалоговом классе?

класс MyDialog: форма {

public static MyDialogResult Show() {};

}

Проблема, как вы можете догадаться, в том, что метод возвращает значение только после того, как пользователь нажмет какую-нибудь кнопку в диалоге.


person Sindoki    schedule 26.07.2010    source источник


Ответы (3)


Вы также можете установить свойство DialogResult для кнопки. Если эта кнопка нажата, то указанное значение будет возвращено методом ShowDialog().

person Xavier Poinas    schedule 26.07.2010

В вашем обработчике, который закрывает ваш диалог, поместите это перед закрытием:

DialogResult = DialogResult.OK;

Или что вы хотите, чтобы результат был.

person Dan    schedule 26.07.2010

Очень полезные ответы. Спасибо! Но я уже решил свою проблему, используя мьютекс. Он предоставляет возможность возвращать результаты разных типов. Итак, мой метод showDialog() возвращает строку).

person Sindoki    schedule 28.07.2010