EDIT: этот метод действительно отлично работает, и я спросил его, затем нашел решение позже. Я добавил правильный вызов в перегруженном методе ShowDialog() (он не слишком перегружен или даже переопределен, но он работает точно так же. Мой новый вопрос - тот, который внизу.
У меня есть форма, в которой вы нажимаете одну из трех кнопок. Я определил перечисление для возвращаемых результатов. Я хочу позвонить:
MyFormResults res = MyForm.ShowDialog();
Я могу добавить новый метод ShowDialog с помощью этого кода:
public new MyFormResults ShowDialog()
{
//Show modal dialog
base.ShowDialog(); //This works and somehow I missed this
return myResult; //Form level variable (read on)
}
Я устанавливаю переменную уровня формы для результата при нажатии кнопок:
MyFormResults myResult;
private void btn1_click(object sender, EventArgs e)
{
myResult = MyFormsResults.Result1;
this.DialogResult = DialogResult.OK; //Do I need this for the original ShowDialog() call?
this.Close(); //Should I close the dialog here or in my new ShowDialog() function?
}
//Same as above for the other results
Единственное, что мне не хватает, это код, чтобы показать диалог (модальный), а затем вернуть мой результат. Нет функции base.ShowDialog()
, поэтому как это сделать?
EDIT: существует "base.ShowDialog()", и он работает. Это мой новый вопрос:
Кроме того, это лучший способ сделать все это и почему?
Спасибо.