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

时间:2011-06-16 12:47:46

标签: c# winforms visual-studio-2008 dialog

我正在尝试创建一个自定义对话框(使用WinForms),就像ColorDialogOpenFileDialog一样,打开并接受来自用户的一些输入,然后将执行返回到父表单一次输入已经收到。

我尝试通过创建一个具有Show()方法的自定义表单来实现此目的,然后将其调用为:

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

您可以想象,在选择任何输入之前执行第二行时,这不起作用。

我的问题是:我如何创建一个自定义对话框来挂起父表单的执行,如ColorDialogOpenFileDialog那样,以便我可以强制用户输入之前的内容执行继续?

3 个答案:

答案 0 :(得分:3)

你应该调用ShowDialog(),这将打开对话框作为模态,只有在对话框关闭后你才会继续在调用表单中执行。

最好在模态表单周围使用using块,这样一旦用完就会立即处理。

答案 1 :(得分:1)

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

这样的东西
if(custom_dialog.ShowDialog() == DialogResult.Ok)
   do something here
else
   do something different

答案 2 :(得分:1)

使用Form.ShowDialog Method

  

您可以使用此方法显示   应用程序中的模态对话框。   调用此方法时,代码   跟随它直到没有执行   对话框关闭后。

     

可以为对话框分配一个   DialogResult的值   枚举通过将其分配给   Button上的DialogResult属性   形式或通过设置   表单中的DialogResult属性   码。然后返回此值   这种方法。

     

您可以使用此返回值   确定如何处理动作   发生在对话框中。