繁体   English   中英

如何知道是否未选择表单?

[英]How to know if a form is not selected?

区分这种简单的事情有很多问题。

我需要知道当前是否存在一种形式,即接收关键条目的形式。

我没有办法知道。

我可以检查是否没有最小化。 但是然后它可能就在其他窗口的后面,或者只是未被选中(例如,它是openend的,桌面在后面,您单击桌面,然后您仍然看到该应用程序,但是它没有收到关键输入)。

物业focus对此毫无意义。

这是代码

    protected override void OnActivated(EventArgs e)
    {
        base.OnActivated(e);

        if (this.Focused)
        {
            gotFocus = true;
            // never reaches tis
        }

检查窗口是否为当前活动窗口。

码:

using System.Runtime.InteropServices; // To use DllImport

...

[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();

        if ((IntPtr)GetForegroundWindow() == this.Handle)
        {
            // Do stuff
        }

请参阅: 在Get语句中使用GetForegroundWindow结果检查用户的当前窗口

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM