如何知道是否未选择表单

本文关键字:选择 表单 是否 何知道 | 更新日期: 2023-09-27 17:59:01

要区分这么简单的东西,我有很多问题。

我需要知道当前是否有一个表单在所有内容前面,即接收关键条目的表单。

我不知道是不是。

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

属性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
        }

请参阅:在if语句中使用GetForegroundWindow结果来检查用户';s当前窗口