我在C#中有两个表单,一个打算用作对话框结果,另一个表示“主”表单。我如何设置另一个表单,以便form1中的代码等到第二个表单被解除,然后再继续执行下一行代码?
答案 0 :(得分:4)
您可以在form2上使用Form.ShowDialog方法。
// Some code in form1
var form2 = new Form2();
form2.ShowDialog();
// Note: this code will resume after form2 has been closed.
或者,您可以订阅Form.Closed事件,以便在form2关闭时运行一些代码。
// Some code in form1
var form2 = new Form2();
form2.Closed += (s, e) {
// Note: this code will run after form2 has been closed.
};
form2.Show();
答案 1 :(得分:0)
代码可能如下所示:
...
var o = new Form2();
o.ShowDialog();
// resumes after closure of Form2
...
你可以做的另一件事是:
var res = o.ShowDialog();
if (res == DialogResult.Cancel)
{
// do something because the user canceled the dialog
}
此外,您可以在表单上设置默认的接受和取消按钮。只需转到Form
的媒体资源,然后注意CancelButton
和AcceptButton
。这样做有两件事:
DialogResult
。答案 2 :(得分:0)
您可以尝试ShowDialog方法:
if (MyForm.ShowDialog(this) == DialogResult.OK)
{
// Resume after closure on "OK"
}
else
{
// Resume after closure on "Cancel/Abort/No/None/Etc..."
}
答案 3 :(得分:-1)
我认为你在谈论custom dialogresult。