使用 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() 形式打开表单;我第一次打开表单但 Show();我第二次打开同一个表格
在 Task ContinueWith TaskScheduler.FromCurrentSynchronizationContext 的 ShowDialog 中打开表单时,应用程序会冻结