仅在应用内部制作窗口最顶层

时间:2018-01-25 11:05:48

标签: c# winforms

我有app同时打开几个窗口。一个窗口(我们称之为MainWindow)是应用程序的主窗口。在该窗口中,我使用Show()方法打开其他几个窗口,并将这些子窗口的Owner属性设置为MainWindow。根据{{​​3}} MSDN文章,如果所有者设置在那种窗口上,主窗口将始终位于子窗口后面

  

所有者窗口永远不能覆盖拥有的窗口。

问题是:是否存在允许我保留父子关系的场景(我需要这个,因为我需要能够遍历子窗口)并且在主窗口的所有其他窗口之前应用程序一直在吗?一个关键注意事项:必须使用Show()而不是ShowDialog()方法打开窗口。

我使用TopmostActivate()方法尝试了Focus()属性,但还没有找到方法。

1 个答案:

答案 0 :(得分:0)

创建父/子关系并能够将父窗口置于最前面的最简单方法是创建一个cusom表单类,为它提供一个属性,您可以使用它来迭代它们然后继承您自定义表单类中的所有表单。 然后Activate()Focus()应该有效。