我在 C# 中有两种形式,一种我打算用作对话结果,另一种是“主”形式。如何设置另一个表单,以便 form1 中的代码等到第二个表单被解除,然后再继续执行下一行代码?
问问题
4259 次
3 回答
5
您可以在 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();
于 2013-07-22T14:23:00.913 回答
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
由这些按钮发送。 - 管理这些按钮的击键Enter和Esc击键。
于 2013-07-22T14:24:14.370 回答
0
您可以尝试ShowDialog方法:
if (MyForm.ShowDialog(this) == DialogResult.OK)
{
// Resume after closure on "OK"
}
else
{
// Resume after closure on "Cancel/Abort/No/None/Etc..."
}
于 2013-07-22T14:24:29.540 回答