代码之家  ›  专栏  ›  技术社区  ›  Ant

什么时候需要调用form.ShowDialog(IWin32Window)而不是form.ShowDialog()?

  •  1
  • Ant  · 技术社区  · 16 年前

    我有一些代码,它调用 form.ShowDialog(IWin32Window) 过载而不是 form.ShowDialog() 一个,但作为参数传入当前活动窗口。

    使用另一个重载似乎使行为保持不变。切换到更简单的过载模式安全吗?何时传入IWin32Window参数?

    3 回复  |  直到 16 年前
        1
  •  3
  •   Adam Robinson    16 年前

    这个 IWin32Window

    我不同意这里的用户说你不应该指定所有者。事实上,如果可能的话,最好指定表单的所有者。虽然对话框可能不如非模态形式重要,但养成指定所有者的习惯始终是一个好主意。

        2
  •  0
  •   Nathan W    16 年前

    如果要在其他应用程序或窗体中设置窗体的父级,可以使用IWin32Window参数。

    例如,您可以获取另一个应用程序或表单的句柄,并将您的表单显示为该应用程序的一部分。你可以找到更多信息 here

        3
  •  0
  •   NascarEd    16 年前

    ShowDialog()的文档说明,“将窗体显示为模式对话框,当前活动窗口设置为其所有者。”因此,除非您明确需要将窗体的所有者设置为非活动窗口,否则无需使用ShowDialog(IWin32Window)。