检查表单是否具有焦点或处于活动状态。

11

我有一个表单,会显示一个通知窗口。但是我想只在表单没有焦点或者不处于活动状态时才显示弹出窗口,类似这样:

if (!form.Active)
{
   //Do something
}

有没有一种方法可以做到这一点?


4
如果 (Form.ActiveForm != form),则表示当前活动窗体不是该窗体。 - Hans Passant
2个回答

15
if (Form.ActiveForm != yourform)
{
   //form not active 
   //do something
}
else
{
   // form active
   // do something
}

5

这可能有助于您的探索。如果您的表单是活动状态,它会告诉您。如果您从表单中点击退出,它也会告诉您。

using System; 
using System.Text;          // probably not required
using System.Windows.Forms; // probably not required
using System.Threading;     // probably not required   


namespace AppName
{   

    public partial class Form1 : Form
    {
        
        protected override void OnActivated(EventArgs e)
        {
            Console.WriteLine("Form activated");
        }


        protected override void OnDeactivate(EventArgs e)
        {
            Console.WriteLine("Form deactivated");
        }

       // more program etc.

    }
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接