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

(對於提示框很好用)如:按回車可以直接關閉提示框。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM