C#中如何判断键盘按键和组合键
C# winform的窗体类有KeyPreview属性,可以接收窗体内控件的键盘事件注册。
窗体和控件都有KeyDown,KeyUp,KeyPress三个事件,每个事件都会有KeyEventArgs参数传入,只要判断传入参数的KeyChar就可以了,Framework提供了Keys枚举来表示键盘上的各个键。
核心判断的代码如下:
1.单键判断
if (e.KeyCode == Keys.Delete)
{
//处理逻辑
}
2.组合建判断:
if (e.Modifiers.CompareTo(Keys.Control) == 0 && e.KeyCode == Keys.Delete)
{
//处理逻辑
}
3.判断上键
if (key == Keys.Up || key == Keys.PageUp)
{
if (index - 2 >= 0)
{
this.lstQueryFilterControls[index - 2].SetInputControlFocus();
}
}
4.判断上键
if (key == Keys.Down || key == Keys.PageDown)
{
if (index + 2 <= this.lstQueryFilterControls.Count - 1)
this.lstQueryFilterControls[index + 2].SetInputControlFocus();
else
{
if (this.listView.Items.Count > 0)
{
this.listView.Focus();
this.listView.Items[0].Selected = true;
}
}
C#中如何判断键盘按键和组合键的更多相关文章
- C#窗体模拟键盘按键(组合键)产生事件 ---- 通过keybd_event()函数
如何模拟键盘按键触发产生的事件,比如模拟按下Alt + F4 关闭当前程序,Ctrl+Shift 切换输入法等 可以通过win32api 键盘事件 keybd_event() 来实现 1.定义键盘按键 ...
- C#窗体如何通过keybd_event()函数模拟键盘按键(组合键)产生事件
如何模拟键盘按键触发产生的事件,比如模拟按下Alt + F4 关闭当前程序,Ctrl+Shift 切换输入法等 可以通过win32api 键盘事件 keybd_event() 来实现 1.定义键盘按键 ...
- js获取及判断键盘按键的方法
这篇文章主要介绍了js获取及判断键盘按键的方法,涉及JavaScript键盘事件的获取及键值的判定技巧,具有一定参考借鉴价值,需要的朋友可以参考下 本文实例讲述了js获取及判断键盘按键的方法.分享 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验九:PS/2模块③ — 键盘与多组合键
实验九:PS/2模块③ — 键盘与多组合键 笔者曾经说过,通码除了单字节以外,也有双字节通码,而且双字节通码都是 8’hE0开头,别名又是 E0按键.常见的的E0按键有,<↑>,<↓ ...
- Atitit.android js 的键盘按键检测Back键Home键和Menu键事件
Atitit.android js 的键盘按键检测Back键Home键和Menu键事件 1. onKeyDown @Override public boolean onKeyDown(int keyC ...
- Js判断键盘按键
该文转自: namehwh 网址:http://www.cnblogs.com/hanwenhua/articles/3365154.html window.document.onkeydown = ...
- C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加: 2. 添加KeyPress / KeyDown事件: 1.KeyPress 和KeyDown .Ke ...
- 在C#程序中模拟发送键盘按键消息
using System.Runtime.InteropServices; 引入键盘事件函数 [DllImport("user32.dll")]public static exte ...
- js中键盘按键对应的键值
js键盘键值 keycode 8 = BackSpace BackSpace keycode 9 = Tab Tab keycode 12 = Clear keycode 1 ...
随机推荐
- samba.conf (香港中华厨房有限公司实例)
# Sample configuration file for the Samba suite for Debian GNU/Linux. # # This is the main Samba con ...
- Deepin-安装(读写文件)权限
在安装NODE管理模块N时,遇到了权限问题 1.给予程序读写权限(仅限文件夹) 查看权限:ls -l 或 ls 添加权限: 示例:chmod +rw xx 实例:chmod +rw node 关于权限 ...
- Redis 入门指南
就是DBIdx
- WPF 创建二维码
1.在http://zxingnet.codeplex.com/网站上下载ZXing .Net的第三方库 2.新建一个WPFproject 3.引入zxing.dll 4.加入引用空间 using Z ...
- Android 官方博客 - Android应用程序的内存分析(翻译)(转)
转自:http://www.cnblogs.com/wisekingokok/archive/2011/11/30/2245790.html Dalvik虚拟机支持垃圾收集,但是这不意味着你可以不用关 ...
- 识别IE11浏览器
现在俺们做的系统十分高大上,用IE的话非要上IE11或以上版本. 咋检测呢?检测到用户用IE.且IE低于IE11的话就提示他升级浏览器呢?可以酱紫: var _IE = (function (d, w ...
- 2016/3/30 租房子 ①建立租房子的增、删、改php页面 ②多条件查询 ③全选时 各部分全选中 任意checkbox不选中 全选checkbox不选中
字符串的另一种写法:<<<AAAA; 后两个AA回车要求顶格 不然报错 例子: <!DOCTYPE html> <html lang="en" ...
- Educational Codeforces Round 18 C. Divide by Three DP
C. Divide by Three A positive integer number n is written on a blackboard. It consists of not more ...
- java8--集合(疯狂java讲义3复习笔记)
1.集合分四类:set,map,list,queue 位于java.util包下. 集合类和数组的区别,数组可以保存基本类型的值或者是对象的引用,而集合里只能保存对象的引用. 集合类主要由两个接口派生 ...
- jetty9 web app的部署
jetty9将web app和web app的context配置文件都放在${JETTY_HOME}/webapps下面. 例如,如果有一个myapp.war,首先将其放入${JETTY_HOME}/ ...