启动进程作为顶部 Window

Start Process as Top Window

我目前正在为使用 Process.Start("C:\Some\Path") 的用户打开一个文件夹。

由于调用表单的 TopMost 属性 被设置为 true,新的 window 会出现在该表单的后面,并且即使用户与新的表单交互也会保留在该表单的后面window.

如何定义这个新的 window,使其 TopMost 属性 设置为 true?否则,有没有另一种方法可以把这个 window 放在上面?

我研究了 Process 的许多不同属性,寻找可以将 TopMost 设置为 true 的属性,或可能具有相同效果的其他 属性。

我找不到任何可以在命令行中与资源管理器一起使用的选项,这些选项可以强制 window 位于顶部,可以用作参数。

正如评论中所建议的那样,最好的方法是完全避免使用 TopMost 属性。

另一种确保对话框出现在主(或父)窗体之上的方法是将父窗体标识为子窗体。这可以通过在 ShowDialog() 方法调用中使用 this 关键字来完成。

在 C# 中:

someForm.ShowDialog(this)

在 Visual Basic 中:

someForm.ShowDialog(me)

这会将 this 表单识别为新对话框的父表单,这将使新表单比 not 使用 this 更可靠地出现在顶部] 在方法调用中,不使用 TopMost 属性,这可能会导致其他意外问题。

这解决了此问题单中确定的问题,其中 windows 与当前程序无关的问题出现在程序中创建的对话框后面。