以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于快捷键 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121615) |
-- 作者:luodang2050 -- 发布时间:2018/7/10 15:04:00 -- 关于快捷键 目前项目已设置了全局热键,发现如下问题: 1、热键容易与其他程序冲突,特别是项目多开的时候。 现想实现局部热键,仅当当前项目非最小化时,热键才生效,且多开项目能够不冲突,应该怎么实现?
|
-- 作者:有点甜 -- 发布时间:2018/7/10 15:29:00 -- 1、全局热键,冲突,这个是不能避免的。好比ctrl+all+z,这个被QQ占用了,你就不能再使用这个快捷键做你的操作了。
2、你可以在项目获取焦点的时候设置热键,项目失去焦点的时候,注销热键。systemIdle事件(细节自己调整)
If System.Windows.Forms.Form.ActiveForm isNot Nothing Then output.show("获取焦点" & date.now) Else output.show("失去焦点" & date.now) End If |
-- 作者:luodang2050 -- 发布时间:2018/7/10 15:35:00 -- 这种方法的话,当项目多开且同时获取焦点时,热键容易混乱。能否设置局部热键,仅针对该项目生效呢? |
-- 作者:有点甜 -- 发布时间:2018/7/10 15:42:00 -- 以下是引用luodang2050在2018/7/10 15:35:00的发言:
这种方法的话,当项目多开且同时获取焦点时,热键容易混乱。能否设置局部热键,仅针对该项目生效呢?
没有局部热键。你用的系统热键只有一个,不能冲突。
局部热键,请在你的窗口的keydown或者表格的keydown事件处理,这样只有打开窗口、焦点在窗口的时候,才会触发。 |