C# Form窗口显示为模态对话框(ShowDialog()返回值)

将Form显示为模态对话框

Form显示为模态对话框,就是一直显示在主窗口的前面,不关闭就不能操作主窗口

关闭模态对话框会返回结果

例子

在 主窗口 Form1 中创建模态对话框窗口:

OpenFileForm openFileForm= new OpenFileForm();

调用 ShowDialog() 显示对话框,当关闭对话框时,会返回结果

if (DialogResult.OK == startForm.ShowDialog())
{
    // 关闭对话框不会销毁,调用Dispose()才销毁
    openFileForm.Dispose();

}

关闭Form时,设置返回结果

在 OpenFileForm 代码中,给 DialogResult 属性赋值,就会关闭对话框,且上面的 ShowDialog() 方法会返回结果

例子

DialogResult = DialogResult.OK;

DialogResult枚举值

Form的 DialogResult 属性的值,必须是 DialogResult 枚举值,具体如下:

  • DialogResult.Abort:值是3,对话框的返回值是 Abort(通常从标签为“中止”的按钮发送)。

  • DialogResult.Cancel:值是2,对话框的返回值是 Cancel(通常从标签为“取消”的按钮发送)。

  • DialogResult.Continue:值是11,对话框返回值是“继续” (通常从标记为“继续”) 的按钮发送。

  • DialogResult.Ignore:值是5,对话框的返回值是 Ignore(通常从标签为“忽略”的按钮发送)。

  • DialogResult.No:值是7,对话框的返回值是 No(通常从标签为“否”的按钮发送)。

  • DialogResult.None:值是0,从对话框返回了 Nothing。 这表明有模式对话框继续运行。

  • DialogResult.OK:值是1,对话框的返回值是 OK(通常从标签为“确定”的按钮发送)。

  • DialogResult.Retry:值是4,对话框的返回值是 Retry(通常从标签为“重试”的按钮发送)。

  • DialogResult.TryAgain:值是10,对话框返回值是“重试” (通常从标记为“重试”的按钮发送) 。

  • DialogResult.Yes:值是6,对话框的返回值是 Yes(通常从标签为“是”的按钮发送)。

参考:
https://learn.microsoft.com/zh-cn/dotnet/api/system.windows.forms.dialogresult?view=windowsdesktop-7.0

https://www.cnblogs.com/xiaofengfeng/archive/2011/12/05/2276730.html