WinForm始终置顶并获取焦点

本文介绍了一种在Windows Form应用程序中使窗体始终保持活动状态的方法。通过使用Timer控件配合特定事件,确保即使在切换到其他应用时也能将指定窗体拉回前台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    使一个Winform始终置顶很简单,只要将这个Form的TopMost属性设置为True即可,但是强制让其获取焦点就比较麻烦了。

最开始的想法在Deactivate事件(Form处于非活动状态时)中,加入如下代码:

            this.Activate();//this为当前窗体
            this.Focus();

    但是发现断点调试的时候OK,但是一旦取消断点,运行起来就发现不行了。最后想到用Timer控件来完成这样的功能。发现使用Timer后,就可以使Form永久的处于活动状态了。具体方法如下:

    1 在窗体中加入Timer控件,设置interval:100(或者50, 根据个人喜好 ^_^),记得不要将Enable设置为True。

    2 在Deactivate事件中,添加代码:Timer1.Start();

    3 在Timer的Tick事件中,加入如下代码:

            this.Activate();//this为当前窗体
            this.Focus();
            timer1.Stop();

    最后,一定要注意的是Timer的开启和关闭计时的时机,如果只有Start没有Stop的话,那么此Form中别的事情就不要干了 呵呵。 整个代码如下:

   

  private void Form1_Deactivate(object sender, EventArgs e)
        {
            timer1.Start();
        }
       
        private void timer1_Tick(object sender, EventArgs e)
        {
            this.Activate();
            this.Focus();
            timer1.Stop();
        }

 

转载于:https://www.cnblogs.com/SandyWang/archive/2010/08/05/1793065.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值