我有很多问题要区分这么简单的事情。
我需要知道表单当前是否在所有内容之前,即接收密钥条目的表单。
我无法知道它是不是。
我可以检查是否最小化。但它可能只是落后于其他窗口,或者只是没有被选中(例如它是开放的,桌面落后,你点击桌面,然后你仍然看到应用程序,但它没有收到关键输入)。
属性focus
对此无效。
这是代码
protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);
if (this.Focused)
{
gotFocus = true;
// never reaches tis
}
答案 0 :(得分:1)
检查窗口是否是当前活动窗口。
代码:
using System.Runtime.InteropServices; // To use DllImport
...
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
if ((IntPtr)GetForegroundWindow() == this.Handle)
{
// Do stuff
}
请参阅:Use GetForegroundWindow result in an if statement to check user's current window