在一个多项目解决方案中,我有一个带有2个表单的启动WinForms项目,只要显示子表单在我的主表单中继续执行,就会期望DialogResult
。
var form2 = new ThisNameSpace.FormChild();
var dResult = form2.ShowDialog(this);
if(dResult == DialogResult.OK)
{
// Do some work
}
else
{
// Do other work
}
出于某种原因,我不得不在另一个项目中移动子Form。我在我的主要启动Form项目中引用了新的Project的dll,但我现在无法返回对话框结果。当我的子表单关闭时,主表单的FormClosing
事件将引发CloseReason.None
并退出应用程序。我该如何解决这个问题?
答案 0 :(得分:1)
您不应该自己提出FormClosing
事件,也不应该编写任何自定义代码来关闭对话框。
而是这样做:
DialogResult
属性设置为OK
Accept Button
属性设置为指向“确定”按钮这就是关闭窗口所需的全部内容,将返回正确的DialogResult。
如果您需要“手动”关闭它(对于模态对话框很少见,即使用ShowDialog
而不是Show
打开的对话框),请使用Close
方法。