3

我想在我的 C# Windows 窗体应用程序中显示一个状态窗口,当应用程序等待获取锁时通知用户。这是一个应用程序定义的东西,但是,该窗口应该是可见的,并且始终保持在我的应用程序的所有其他窗口的顶部,即使用户单击另一个窗口(例如它后面较大的主窗口)也是如此。

它不能是模态的(所以 ShowDialog() 不能使用),因为应用程序需要在后台继续尝试并在最终获得锁时自动关闭窗口,并且它真的不应该是整个窗口的最顶层站(即在该终端会话中运行的所有应用程序)。

我知道 Form.TopMost 属性,但它只能将一个窗口置于所有其他窗口之上,即使是来自其他应用程序的窗口。这显然不是我想要的。

我知道这是可能的,我以前在其他应用程序中见过很多次。我只是不知道该怎么做。

4

2 回答 2

9

如果您将主表单传递给Show状态表单的方法,它将停留在主表单的顶部,但不会位于其他应用程序的顶部。因此,在主窗体中,您可以使用如下代码:

StatusForm statusForm = new StatusForm();
statusForm.Show(this);

但是,这只会将您的应用程序的一个窗口指出为所有者。

于 2009-09-08T10:46:36.097 回答
4

您必须将Owner子窗体的属性设置为父窗体,并用于Show显示子窗体。

于 2009-09-08T10:47:59.260 回答