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 ...
随机推荐
- Android调试工具_ Stetho
Stetho是Facebook开源的一个Android平台调试工具. Stetho能实如今不root手机的情况下,通过Chrome查看App的布局,Sqlite,SharedPreference.Ne ...
- 【LeetCode】Swap Nodes in Pairs 链表指针的应用
题目:swap nodes in pairs <span style="font-size:18px;">/** * LeetCode Swap Nodes in Pa ...
- Selenium系列之--04 常见元素操作总结
一.Selenium总共有八种定位方法 By.id() 通过id定位 By.name() 通过name 定位 By.xpath() 通过xpath定位 By.className() 通过clas ...
- win7 32位下安装MySQL出现的---1067系统错误---问题及解决
每次安装数据库,总是出现这样那样的问题.如今记录下来,供日后參考咯.... 下载的是解压缩-zip版本号的.安装配置教程參照洪哥笔记文章-<MySQL-5.6.13解压版(zip版)安装配置教程 ...
- [办公自动化]EXCEL不大,但是保存很慢
今天同事有一个excel文件.office 2007格式的. 折腾了半天.按照以往的经验,定位-对象,应该可以删除. 后来在“编辑”窗格的“查找和选择”里面,单击“选择窗格“.可以看到很多”pictu ...
- 必备java参考资源列表
现在开始正式介绍这些参考资源. Web 站点和开发人员 Web 门户 网络无疑改变了共享资源和出版的本质(对我也是一样:您正在网络上阅读这篇文章),因此,从每位 Java 开发人员都应该关注的关键 W ...
- mysql08---优化01
Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引(什么都不写).主键索引(有一个主键 ...
- 清空sql 日志
USE [master] GO ALTER DATABASE 库名 SET RECOVERY SIMPLE GO USE 库名 GO ,,TRUNCATEONLY) GO USE [master] G ...
- 一步一步学Silverlight 2系列(1):创建一个基本的Silverlight应用
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- 并不对劲的WC2019
并不想说"讲了什么"或"考了什么",讲这些的人太多了 过去的那个下位猎人,会为了第一次击败怪物而开心,会在闪光弹扔对方向后得意(然后忘记输出...),会因能够无 ...