我正在尝试创建一个自定义对话框(使用WinForms),就像ColorDialog
或OpenFileDialog
一样,打开并接受来自用户的一些输入,然后将执行返回到父表单一次输入已经收到。
我尝试通过创建一个具有Show()
方法的自定义表单来实现此目的,然后将其调用为:
custom_dialog.Show();
var results = custom_dialog.Property;
您可以想象,在选择任何输入之前执行第二行时,这不起作用。
我的问题是:我如何创建一个自定义对话框来挂起父表单的执行,如ColorDialog
或OpenFileDialog
那样,以便我可以强制用户输入之前的内容执行继续?
答案 0 :(得分:3)
你应该调用ShowDialog()
,这将打开对话框作为模态,只有在对话框关闭后你才会继续在调用表单中执行。
最好在模态表单周围使用using
块,这样一旦用完就会立即处理。
答案 1 :(得分:1)
您想要一个模态对话框。它将弹出并暂停所有其他执行,直到它关闭。
像
这样的东西if(custom_dialog.ShowDialog() == DialogResult.Ok)
do something here
else
do something different
答案 2 :(得分:1)
您可以使用此方法显示 应用程序中的模态对话框。 调用此方法时,代码 跟随它直到没有执行 对话框关闭后。
可以为对话框分配一个 DialogResult的值 枚举通过将其分配给 Button上的DialogResult属性 形式或通过设置 表单中的DialogResult属性 码。然后返回此值 这种方法。
您可以使用此返回值 确定如何处理动作 发生在对话框中。