使用 ShowDialog() 时如何使用打开的表单?

Posted

技术标签:

【中文标题】使用 ShowDialog() 时如何使用打开的表单?【英文标题】:How to Use The Form Opened When Using ShowDialog()? 【发布时间】:2013-08-30 13:47:56 【问题描述】:

目前我正在使用ShowDialog() 方法并试图弄清楚它应该如何工作。我有一个表单 testDialog,它有一个文本框,可以输入一个字符串。我按照MSDN页面上的代码如下:

string Range;
testDialog specRange = new testDialog();
if (specRange.ShowDialog(this) == DialogResult.OK)

    Range = specRange.txtPageRange.Text;

else

    Range = "";

specRange.Dispose();

我找不到任何信息并且无法弄清楚的是,如何输入文本并提交?我在表单上放了按钮,但是当我运行程序时它们没有出现。我在文本框中输入了文本,但我无法按 Enter 或其他任何东西,我唯一的选择是关闭表单。

是否有遗漏的内容需要添加,以便在输入文本后按回车键或单击“确定”按钮?

【问题讨论】:

我确定您说的是 Winforms,对吧?能贴一下testDialog类的代码吗? 【参考方案1】:

来自 msdn:

可以通过将对话框分配给窗体上按钮的 DialogResult 属性或通过在代码中设置窗体的 DialogResult 属性来为对话框分配 DialogResult 枚举的值之一。然后此方法返回此值。您可以使用此返回值来确定如何处理对话框中发生的操作。例如,如果对话框关闭并通过此方法返回 DialogResult.Cancel 值,则可以阻止调用 ShowDialog 之后的代码执行。

最简单的方法是在 testDialog 中添加一个“Ok”按钮并将其属性 DialogResult 更改为 Ok。所以当你点击它时,它会返回 DialogResult.ok 并且你会输入你的 if。

【讨论】:

感谢回复,不知道按钮有DialogResult属性。

以上是关于使用 ShowDialog() 时如何使用打开的表单?的主要内容,如果未能解决你的问题,请参考以下文章

使用 ShowDialog 打开的表单在异常后关闭

调用 ShowDialog() 后继续执行代码

如何以 ShowDialog() 形式打开表单;我第一次打开表单但 Show();我第二次打开同一个表格

在 Task ContinueWith TaskScheduler.FromCurrentSynchronizationContext 的 ShowDialog 中打开表单时,应用程序会冻结

从 TabControl 拖动时出现表单 ShowDialog 问题

2017-5-2 对话框控件