WinForm始終置頂並獲取焦點

2021-06-16 13:37:38 字數 1056 閱讀 7986

使乙個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中別的事情就不要幹了 呵呵。 整個**如下:

01

privatevoidform1_deactivate(objectsender, eventargs e)

02

05

06

privatevoidtimer1_tick(objectsender, eventargs e)

07

彈出懸浮視窗並讓置頂程式

首先是主窗體部分,即要判斷窗體的狀態來決定是否顯示懸浮視窗。區域性成員宣告 private formwindowstate fwsprevious private frmtopmost mytopmost 主窗體的load事件 private void frmmain load object sen...

WinForm畫網格並填充顏色

因為研究codecombat上的最後一題,自己嘗試分解題目,然後想到需要畫網格,還有最優化的方法 源 如下 using system using system.collections.generic using system.componentmodel using system.data usin...

Winform傳遞引數至Url並獲得返回值

在winform裡面呼叫url並傳遞引數主要使用httpwebrequest物件,分為兩種形式post和get,個人感覺就是模擬了瀏覽器,1.post方法 使用post方法,呼叫簡訊介面 提交請求資料 2,get方法 使用get方法 3,呼叫起來都比較簡單的,主要是在傳遞引數的過程中注意中文的處理,...