Winforms自定义对话框挂起父执行

本文关键字:执行 挂起 对话框 自定义 Winforms | 更新日期: 2023-09-27 17:59:13

我正试图创建一个自定义对话框(使用WinForms),它与ColorDialogOpenFileDialog非常相似,打开并接受用户的一些输入,然后在收到输入后将执行返回到父窗体。

我试图通过创建一个具有Show()方法的自定义表单来实现这一点,然后像这样调用它:

custom_dialog.Show();
var results = custom_dialog.Property;

正如您所能想象的,这是不起作用的,因为第二行是在选择任何输入之前执行的。

我的问题是:如何创建一个自定义对话框来挂起父窗体的执行,就像ColorDialogOpenFileDialog一样,这样我就可以强制用户在继续执行之前输入一些内容?

Winforms自定义对话框挂起父执行

您应该调用ShowDialog(),这将以模态打开对话框,并且只有在对话框关闭后,您才能在调用表单中继续执行。

在模态形式周围使用using块是一种很好的做法,因此一旦用完该块,它就会立即被处理。

您想要一个模态对话框。它将弹出并停止所有其他执行,直到关闭为止。

类似的东西

if(custom_dialog.ShowDialog() == DialogResult.Ok)
   do something here
else
   do something different

使用Form.ShowDialog方法。

您可以使用此方法显示应用程序中的模式对话框。当调用此方法时直到对话框关闭后。

可以为对话框指定以下选项之一DialogResult的值枚举,方法是将其分配给上按钮的DialogResult属性形式或通过设置中窗体的DialogResult属性密码此值随后由返回这种方法。

您可以使用此返回值确定如何处理操作出现在对话框中。