我如何判断我的程序是否是重点程序

本文关键字:程序 我的 是否是 判断 何判断 | 更新日期: 2023-09-27 18:30:42

我找不到一个好的答案...

具体要问的是,我如何判断我的程序(winforms)是否对用户可见,并且它是专注的?例如,当您使用Skype时,它可以判断它是否是焦点和可见的。如果您收到Skype IM,并且该程序不可见(隐藏在其他窗口后面)/最小化,它将发出通知声音。如果Skype知道它是具有焦点的应用程序,最顶层的应用程序,它就不会费心发出通知,因为它假设你正在使用它。

现在,我已经尝试了if (this.Focused == true),但它似乎根本不起作用。它无法分辨出我正在关注Windows资源管理器,并且我自己的程序位于它的后面,而不是焦点和顶部的灰色。

我如何判断我的程序是否是重点程序

我刚刚测试了它,它按照我想要的方式工作!我可以检查Form.ActiveForm是否为空:如果为空,则它没有焦点;如果它不为空,则具有焦点!

执行所需操作的一种更简单的方法是使用事件。

这是一篇关于该 https://stackoverflow.com/a/1786376/2692994 的优秀帖子

在事件中,您可以用表单放置任何您想做的事情。^我添加了上述内容,因为这可能是Skype使用的。如果你想随时检查它是否聚焦,只需制作一个"公共布尔值聚焦 = true",并在事件中将其设置为 true 或 false。