作为顶部窗口启动进程

时间:2019-06-25 18:18:47

标签: c# vb.net process.start

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

由于调用表单的TopMost属性设置为true,因此即使用户与新窗口进行交互,新窗口也会显示在该表单的后面,并且仍保留在该表单的后面。

如何定义此新窗口,以便将其TopMost属性设置为true?否则,还有另一种方法可以将该窗口置于顶部吗?

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

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

1 个答案:

答案 0 :(得分:0)

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

确保对话框显示在主(或父)窗体顶部的另一种方法是将父窗体标识为子窗体。可以通过在this方法调用内使用ShowDialog()关键字来完成。

在C#中:

someForm.ShowDialog(this)

在Visual Basic中:

someForm.ShowDialog(me)

这会将this表单标识为新对话框的父级,这将导致新表单比方法调用中使用this not 更可靠地显示在顶部,而无需使用TopMost属性,这可能会导致其他意外问题。

这解决了该故障单中标识的问题,其中与当前程序无关的窗口出现在程序中创建的对话框的后面。