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

看板C_Sharp (C#)作者 (笨小孩)時間8年前 (2016/09/29 09:14), 編輯推噓0(0021)
留言21則, 3人參與, 最新討論串1/1
平台: win 10 visual studio 2015 狀況: 有自己寫個按鍵精靈程式,主要是form1上某個按鈕按下後就創個執行序讓它在背景 來回點擊(無窮迴圈),另外一個按鈕則是停止執行序(abort) 問題: 由於功能是來回點擊所以要按下關閉按鈕不易,想在開執行序裡隨時監測使用者是否 有按下某些按鍵(ex: Esc) 但不知道怎實作,懇請各位大大給個方向 備註: 有爬過版上的文&google 我想我的需求應該不需要全域熱鍵,看過版上第12篇文章 但不知道Form1_KeyDown 要怎進入,是自己寫的嗎? 還是按了表單上某個部分就會進 入該函式 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.89.186 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1475111697.A.FC2.html

09/29 10:45, , 1F
1.Form1_KeyDown() 兩個方式加入此事件,1個從Form1.cs中
09/29 10:45, 1F

09/29 10:46, , 2F
的Form1的事件中選keydown 另一個方式是用動態加入的:
09/29 10:46, 2F

09/29 10:50, , 3F
Form1.KeyDown+=(在=之後按下tab鍵即會產生此事件連結)
09/29 10:50, 3F

09/29 10:52, , 4F
2.Esc問題:應該用個flag,判斷ESC是否被觸發就OK了吧
09/29 10:52, 4F

09/29 11:41, , 5F
請問第1個方式是怎選? 在cs還是cs[Design]
09/29 11:41, 5F

09/29 11:43, , 6F
還有我滑鼠來回點擊時 keydown會被執行嗎? 會不會有
09/29 11:43, 6F

09/29 11:43, , 7F
焦點問題
09/29 11:43, 7F

09/29 12:34, , 8F
剛自己試了一下 From1_keydown 會有焦點問題xd
09/29 12:34, 8F

09/29 12:35, , 9F
看來得找找有沒有辦法 在在執行序裡偵測鍵盤
09/29 12:35, 9F

09/29 13:15, , 10F
在Form.cs的畫布上點一下,屬性頁切到事件,產生在[Desig
09/29 13:15, 10F

09/29 13:15, , 11F
n]
09/29 13:15, 11F

09/29 13:16, , 12F
有喔 感謝大大 只是目前滑鼠在自動點擊時沒焦點無法
09/29 13:16, 12F

09/29 13:16, , 13F
還有,我不太懂來回點擊是指什麼樣的操作
09/29 13:16, 13F

09/29 13:16, , 14F
觸發
09/29 13:16, 14F

09/29 13:19, , 15F
你是按了會產生新的執行緒,會不會是跨執行緒的問題?
09/29 13:19, 15F

09/29 13:22, , 16F
哈~抱歉,我不太會用bbs,目前只學會回文,talk要怎麼回?
09/29 13:22, 16F

09/29 13:25, , 17F
ctrl+r
09/29 13:25, 17F

09/30 21:53, , 18F
Form屬性裡面有個KeyPreview,設成True就能抓到子控制項的
09/30 21:53, 18F

09/30 21:54, , 19F
KeyDown事件了。不過還是有些鍵會抓不到(如Tab),但大多數
09/30 21:54, 19F

09/30 21:58, , 20F
狀況夠用了。如果連那些鍵都想抓,註冊熱鍵是比較簡單的作
09/30 21:58, 20F

09/30 21:58, , 21F
法,不過會讓該鍵失去原本的功能。
09/30 21:58, 21F
文章代碼(AID): #1Nx6iH_2 (C_Sharp)
文章代碼(AID): #1Nx6iH_2 (C_Sharp)