.NET Winform 自定义表单 - 需要返回 DialogResult 或以某种方式阻止异步事件

标签 .net winforms dialogresult

我有一个调用自定义子表单的表单。子窗体基本上是一个获取一些用户数据的弹出框。

我希望父表单处理子表单返回的信息。

问题是,Parent 表单正在调用 Child,并且没有等待回复。

理想情况下,我想让 Child 表单返回一个 DialogResult。从功能上讲,这很清楚发生了什么(特别是因为用户可以选择取消子控件),并且似乎是一种强制父级等待的简单方法。
我还没有弄清楚如何做到这一点。

第二个问题是,父控件超出了 childDialog.Show() 事件,并尝试处理子控件的信息。哪个还没有改变。
使用 Child 控件的公共(public)值(例如 childDialog.UserClickedOK)设置条件没有帮助,因为默认值仍然有效。

我在看什么?

谢谢大家! :)

最佳答案

您需要使用 ShowDialog 而不是 Show 以模态方式显示表单。在您的子表单中,您将 DialogResult 设置为考虑到之前发生的用户交互最有意义的任何内容。

关于.NET Winform 自定义表单 - 需要返回 DialogResult 或以某种方式阻止异步事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3693337/

相关文章:

c# - 正确使用 DialogResult

c# - 如何为 OpenFileDialog 框中的取消按钮编写代码

c# - Lambda 表达式作为参数用作 AsTask() 回调

c# - 尝试访问 wcf 服务时,契约(Contract)为 'IService1' 的 ServiceEndpoint 上的 CustomBinding 缺少 TransportBindingElement 错误

c# - .Net WebRequest 超时与 TCP 超时

c# - 按月生成 Crystal 报表?

c# - 如何更改继承项在继承用户控件中的位置

.net - 为什么ShowDialog总是返回DialogResult.Cancel?

.net - 为什么 DataContractSerializer 比 xmlSerializer 更快?

c# - RichTextBox(如何编辑类似记事本的格式?)