zoukankan      html  css  js  c++  java
  • WinForm始终置顶并获取焦点

     使一个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();
              }

    (对于提示框很好用)如:按回车可以直接关闭提示框。

     
    愿你我既可以朝九晚五,也可以浪迹天涯;愿你我既可以拈花把酒,也能围炉诗书茶。
  • 相关阅读:
    P2533 [AHOI2012]信号塔
    P1452 Beauty Contest
    P3194 [HNOI2008]水平可见直线
    P2924 [USACO08DEC]大栅栏Largest Fence
    P2742 【模板】二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
    P4208 [JSOI2008]最小生成树计数
    P4280 [AHOI2008]逆序对
    P3199 [HNOI2009]最小圈
    P3343 [ZJOI2015]地震后的幻想乡
    剪刀,石头,布,小游戏脚本
  • 原文地址:https://www.cnblogs.com/xiaoheihei/p/6873434.html
Copyright © 2011-2022 走看看