在 .net 中打开没有 'Control Parent' 的帮助对话框

Open help dialog without 'Control Parent' in .net

我想打开帮助对话框。我正在使用这个电话:

public static void ShowHelp(Control parent, string url);

我通过无法访问主控件的 class 启动它。所以我将 null 作为 parent 传递。它似乎确实有效,但我想确保我没有遗漏任何东西。

这个 "parent" 论点代表什么? .net 用它做什么?

将 null 作为参数传递是否安全?

我确实在 .Net 源代码中注意到这个开关:

if (parent != null) {
            handle = new HandleRef(parent, parent.Handle);
        }
        else {
            handle = new HandleRef(null, UnsafeNativeMethods.GetActiveWindow());
        }

使用 "UnsafeNativeMethods" 安全吗?

父控件决定哪个 window 将拥有该对话框。如果父级不是 window,将使用此控件的最终父级(应该是 window)。如果 parent 参数为 null,则将选择进程的主要 window(如果有的话)。

这是必需的,以便对话框可以是模态的,并且与父项的交互 window 被阻止,直到对话框被关闭。