gpt4 book ai didi

c# - 如何判断 Windows 窗体是否已打开但在另一个窗口后面?

转载 作者:太空狗 更新时间:2023-10-29 23:01:18 26 4
gpt4 key购买 nike

调用 Form.Visible 将返回 true,无论窗体是最大化、最小化还是具有 Normal 的 FormWindowState。

我想知道的是如何判断表单是否打开但“隐藏”在另一个应用程序的窗口后面。

如果是这样的话,我想把它放在前面,让用户看到它。

我尝试了 BringToFront() 方法,但没有用。我也试过调用 Show() 方法,但如果表单在另一个应用程序的窗口后面,它会保持原样。

我发现该问题的唯一解决方法是将 Form 的 FormWindowState 设置为最小化/最大化然后正常,但这有点 hack 并且看起来不太好。

谁能告诉我如何判断表单是否在另一个窗口后面以及如何将其置于最前面?

最佳答案

奇怪。

this.Activate() 应该可以解决问题。

你总是可以尝试一种“可怕的黑客方法”,我对传播它感到内疚。但是如果 this.Activate() 不起作用,为了测试你可以尝试:

this.TopMost = true;
this.Focus();
this.BringToFront();
this.TopMost = false;

我从未见过将此推荐为解决方案,但它可能会向您展示功能。如果上述代码有效,我会更关心为什么 this.Activate() 无效。

至于检测窗口,你不能像那样通过C#使用命令来检测它。查看以下问题的答案以获取更多信息: How to check if window is really visible in Windows Forms?

关于c# - 如何判断 Windows 窗体是否已打开但在另一个窗口后面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11366600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com