0

我觉得通过询问如何做到这一点,我犯了大罪,因为在大多数情况下,这将是错误和邪恶的。但...

我有一个 winforms 应用程序,它在不使用时最小化到系统托盘我想让它弹出并在它收到来自服务器的消息时成为最顶层的窗口。

我可以让它出现,但我不能让它成为最顶层的窗口。(设置 topmost 不会改变它,但是一旦获得焦点,它确实会使它成为最顶层)

有谁知道该怎么做?,我通常不会这样做,但客户要求这种行为,所以我必须实施它...... :(

4

2 回答 2

1

如果 .Net 的 'topmost' 功能不起作用,您可以尝试直接从 Windows 的 'SetWindowPos()' API 获取此服务。有关详细信息,请参阅页面。

于 2009-03-13T12:42:00.177 回答
1

在微软的论坛上有一篇关于这个问题的帖子。

通常,如果窗口在您的应用程序中,调用它的 BringToFront 方法应该可以解决问题。

所以正常的操作顺序:

  1. 让它可见
  2. 调用 BringToFront()
  3. 设置为 TopMost
于 2009-03-13T12:44:32.620 回答