C#创建自定义对话框结果表单

时间:2013-07-22 14:21:45

标签: c# .net winforms

我在C#中有两个表单,一个打算用作对话框结果,另一个表示“主”表单。我如何设置另一个表单,以便form1中的代码等到第二个表单被解除,然后再继续执行下一行代码?

4 个答案:

答案 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的媒体资源,然后注意CancelButtonAcceptButton。这样做有两件事:

  1. 确定这些按钮发送的DialogResult
  2. 管理这些按钮的 Enter Esc 键击。

答案 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