РЕДАКТИРОВАТЬ: Этот метод на самом деле прекрасно работает, и я спросил его, а затем нашел решение позже.Я добавил правильный вызов в перегруженный метод 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()
, так как мне это сделать?
РЕДАКТИРОВАТЬ: есть «base.ShowDialog ()», и это работает. Это мойновый вопрос здесь:
Кроме того, это лучший способ сделать все это и почему?
Спасибо.