c#如果判断,程序是不是只按只某个键

ijunxiong 2014-05-17 09:17:06
我看有些软件,是支持的,
比如 ctrl s 是保存,如果是用键盘取值的话,一般我们会判断有 ctrl 有 s 就执行保存,
但如果有同时按下 如 alt 键(可以是任意键),我觉得多按下键应该要被过滤掉,
但是怎么判断 多按键了呢,,,或判断程序是不是只按了某个键,某些键
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ijunxiong 2014-05-19
  • 打赏
  • 举报
回复
:lasesiwen 不过你说的这方法,似乎不支持区别这两种 ctrl a ctrl x a 当我依次按住:ctrl x a 时,它执行 if(e.KeyData == (Keys.Control | Keys.A)){ ... } 中{...}部分的代码 而我原意是它只执行同时按 ctrl a ,多一个不行的,..
ijunxiong 2014-05-19
  • 打赏
  • 举报
回复
谢谢各位支持,  :lasesiwen 你的回答应该是我要的答案了,你说的单独支持ctrl的不可以吗,像这样,keydown里,if(e.Control){ ... } 过两天来结...
  • 打赏
  • 举报
回复
http://www.cnblogs.com/junjie94wan/archive/2011/08/11/2135255.html
黄大仙儿 2014-05-17
  • 打赏
  • 举报
回复
还有一个思路 没试过 但是觉得可行 全局一个List<string> cmd KeyDown的事件中,把值add到cmd中,KeyUp的时候得到cmd中的所有值就知道按了什么,然后再清空cmd
lasesiwen 2014-05-17
  • 打赏
  • 举报
回复
private void Form1_KeyUp(object sender, KeyEventArgs e) { if (e.KeyData == (Keys.C | Keys.Control | Keys.Alt | Keys.Shift)) { //Ctrl+Shift+Alt+C } if (e.KeyData == (Keys.C | Keys.Control)) { //Ctrl+C } if (e.KeyData == Keys.C) { //C } } Ctrl 、shift 、alt 应该不能单独做快捷键使用,应该是要结合其它按键使用的,具体为什么,还真没研究过
jiawaziaixialing 2014-05-17
  • 打赏
  • 举报
回复
keypress应该可以解决吧

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧