[問題] 監測特定鍵盤上特定按鍵

作者: hardman1110 (笨小孩)   2016-09-29 09:14:54
平台:
win 10 visual studio 2015
狀況:
有自己寫個按鍵精靈程式,主要是form1上某個按鈕按下後就創個執行序讓它在背景
來回點擊(無窮迴圈),另外一個按鈕則是停止執行序(abort)
問題:
由於功能是來回點擊所以要按下關閉按鈕不易,想在開執行序裡隨時監測使用者是否
有按下某些按鍵(ex: Esc) 但不知道怎實作,懇請各位大大給個方向
備註:
有爬過版上的文&google 我想我的需求應該不需要全域熱鍵,看過版上第12篇文章
但不知道Form1_KeyDown 要怎進入,是自己寫的嗎? 還是按了表單上某個部分就會進
入該函式
作者: cozilon (咕嘰龍)   2016-09-29 10:45:00
1.Form1_KeyDown() 兩個方式加入此事件,1個從Form1.cs中的Form1的事件中選keydown 另一個方式是用動態加入的:Form1.KeyDown+=(在=之後按下tab鍵即會產生此事件連結)2.Esc問題:應該用個flag,判斷ESC是否被觸發就OK了吧
作者: hardman1110 (笨小孩)   2016-09-29 11:41:00
請問第1個方式是怎選? 在cs還是cs[Design]還有我滑鼠來回點擊時 keydown會被執行嗎? 會不會有焦點問題剛自己試了一下 From1_keydown 會有焦點問題xd看來得找找有沒有辦法 在在執行序裡偵測鍵盤
作者: cozilon (咕嘰龍)   2016-09-29 13:15:00
在Form.cs的畫布上點一下,屬性頁切到事件,產生在[Design]
作者: hardman1110 (笨小孩)   2016-09-29 13:16:00
有喔 感謝大大 只是目前滑鼠在自動點擊時沒焦點無法
作者: cozilon (咕嘰龍)   2016-09-29 13:16:00
還有,我不太懂來回點擊是指什麼樣的操作
作者: cozilon (咕嘰龍)   2016-09-29 13:19:00
你是按了會產生新的執行緒,會不會是跨執行緒的問題?哈~抱歉,我不太會用bbs,目前只學會回文,talk要怎麼回?
作者: hardman1110 (笨小孩)   2016-09-29 13:25:00
ctrl+r
作者: Litfal (Litfal)   2016-09-30 21:53:00
Form屬性裡面有個KeyPreview,設成True就能抓到子控制項的KeyDown事件了。不過還是有些鍵會抓不到(如Tab),但大多數狀況夠用了。如果連那些鍵都想抓,註冊熱鍵是比較簡單的作法,不過會讓該鍵失去原本的功能。

Links booklink

Contact Us: admin [ a t ] ucptt.com