[问题] 监测特定键盘上特定按键

楼主: 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