【问题标题】:Winforms Custom Dialog hang parent executionWinforms 自定义对话框挂起父执行
【发布时间】:2011-06-16 12:47:46
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    在模态表单周围使用using 块是一种很好的做法,这样一旦用完此类块就会立即处理它。

    【讨论】:

    • 这很容易。谢谢大家。
    【解决方案2】:

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

    类似

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

    【讨论】:

      【解决方案3】:

      使用Form.ShowDialog Method

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

      对话框可以被分配一个 DialogResult 的值 通过将枚举分配给 一个 Button 的 DialogResult 属性 表格或通过设置 表单中的 DialogResult 属性 代码。然后该值由 这个方法。

      你可以使用这个返回值来 确定如何处理动作 发生在对话框中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-30
        • 2012-08-13
        • 2013-01-06
        • 2012-08-27
        相关资源
        最近更新 更多