VS编程,WPF中响应键盘事件、检测键盘键是否按下的一种方法
键盘事件有四个,PreviewKeyDown、PreviewKeyUp、KeyDown、KeyUp,
在事件中,对参数e的Key属性进行判定。
这里以一个TextBox的文本控件为例。检测到回车键给予提示。
1、在键盘事件中,检测单个按键
1、前台增加文本控件并增加键盘事件
2、后台的键盘抬起事件中加入
if (e.Key == Key.Enter){MessageBox.Show("检测到回车键已按下");}
像这样:
同理,如果响应其它的键盘按键,在Key后面点 . 选择其它的键值。
2、在键盘事件中,响应组合键盘(两个或者两个以上)
这里以Ctrl + S为例
- 前台定义键盘事件
- 后台在事件中加入代码
有两种写法:
第一种:
1、同时按下了Ctrl + S键
2、修饰键只能按下Ctrl,如果还同时按下了其他修饰键,则不会进入
if (e.KeyboardDevice.Modifiers == ModifierKeys.Control && e.Key == Key.S){MessageBox.Show("检测到Ctrl、S已按下");}
第二种:
1、同时按下了Ctrl + S键
2、修饰键只要按下Ctrl,不管是否还同时按下了其他修饰键,都会进入
if (e.KeyboardDevice.Modifiers.HasFlag(ModifierKeys.Control) && e.Key == Key.H){MessageBox.Show("检测到Ctrl、S已按下");}
其中 ModifierKeys.Control后面的Control可换成其它四个
3、在非键盘事件中(也可在键盘事件中),检测单个或者多个键盘值
利用Keyboard类的静态方法IsKeyDown,完全脱离事件参数e,来检测判、断键盘按键
这种方式可以在任何事件中去检测多个组合按键或者单个按键。
if (Keyboard.IsKeyDown(Key.LeftCtrl) && Keyboard.IsKeyDown(Key.LeftShift ) && Keyboard.IsKeyDown(Key.S)){//只要当下同时按下的键中包含LeftCtrl、LeftShift 和S ,就会进入}
4、对于具有开关性质的按键,比如大小写、数字键盘等键值状态判定
这里以数字键盘是否打开为例:
if (KeyStates.Toggled == Keyboard.GetKeyStates(Key.NumLock)){}
判定左边为一个具体的状态,包括按下(Down)、打开(Toggled)、未打开(None)三种状态
判定的右边为要检测的键值
VS编程,WPF中响应键盘事件、检测键盘键是否按下的一种方法相关推荐
- WPF中的鼠标事件详解
WPF中的鼠标事件详解 Uielement和ContentElement都定义了十个以Mouse开头的事件,8个以PreviewMouse开头的事件,MouseMove,PreviewMouseMov ...
- angularjs中按回车事件_浅谈angularjs中响应回车事件
下面这个示例在输入框键入回车键或者点击按钮时,将输入框的值置为"Hello World!":(黄色背景内容为响应回车事件涉及到的代码) angularjs-demo test va ...
- JS--JavaScript使用键盘事件、键盘事件属性(keyCode、charCode、target...)、使用键盘控制页面元素
键盘事件 当用户操作键盘时会触发键盘事件,键盘事件主要包括下面3种类型: keydown: 在键盘上按下某个键时触发.如果按住某个键,会不断触发该事件,但是Opera浏览器不支持这种连续操作.该事件处 ...
- 【EVENT】键盘事件:键盘控制元素移动
对于一些简单的键盘游戏,比如森林冰火人.闪翼双星等等,都是用上下左右或WASD键来控制人物移动的.这类案例的实现思路很简单,使用键盘事件判断键码相等之后执行即可.下面我们来一起实现一下. 首先构造一个 ...
- WPF编程,将控件所呈现的内容保存成图像的一种方法。
WPF编程,将控件所呈现的内容保存成图像的一种方法. 原文:WPF编程,将控件所呈现的内容保存成图像的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.ne ...
- VS开发中的代码编写小技巧——避免重复代码编写的几种方法
原文:VS开发中的代码编写小技巧--避免重复代码编写的几种方法 上一篇文章中程序员的幸福生活--有你的日子,每天都是情人节,收到了大家的很多好评.鼓励和祝福,非常感动,真诚的谢谢大家.也希望每个朋友都 ...
- 数字字母下划线C语言,【判断题】C语言中的标识符只能由字母、数字和下划线三种字符组成,而且第一个字符只能是字母和下划线。...
[判断题]C语言中的标识符只能由字母.数字和下划线三种字符组成,而且第一个字符只能是字母和下划线. 更多相关问题 计算机病毒按其寄生方式划分通常可分为().A.系统引导型病毒B.文件型病毒C. 在委托 ...
- 了解 WPF 中的路由事件和命令
目录 路由事件概述 WPF 元素树 事件路由 路由事件和组合 附加事件 路由命令概述 操作中的路由命令 命令路由 定义命令 命令插入 路由命令的局限 避免命令出错 超越路由命令 路由处理程序示例 要想 ...
- WPF中的路由事件(转)
出处:https://www.cnblogs.com/JerryWang1991/archive/2013/03/29/2981103.html 最近因为工作需要学习WPF方面的知识,因为以前只关注的 ...
- WPF UserControl响应PreviewKeyDown事件方法
之前在一个项目中,Window窗口嵌入UserControl页面,在UserControl控件页面中添加PreviewKeyDown或者KeyDown事件,软件均不触发事件:在Window窗口可以响应 ...
最新文章
- XunSearch中常用方法整合
- html5shiv.js和respond.min.js的作用
- Flask-sqlalchemy连接数据库
- 【数据结构与算法】之柱状图中最大矩形的求解思路和算法示例
- Mybatis多参数封装到map中,多条件查询
- 拉斯维加斯算法结合八皇后问题
- (19)HTML5 <progress> 标签
- 多元线性回归的缺陷_轻松阅 | 多元线性回归的“参差不齐
- 云计算学习笔记003---Hadoop简介,hadoop实现原理,NoSQL介绍...与传统关系型数据库对应关系,云计算面临的挑战
- PyTorch学习—10.nn中网络层的具体使用
- ACDSee QuickView(图片浏览器)v1.2.42官方版
- matlab实现jpg图片转gif
- 有哪些计算机法人快捷键,tras企业版操作说明.doc-广东省国家税务局.doc
- OK6410移植UBOOT
- 在两台设备chrome之间同步自己的书签
- PHP数据库分表查询
- git@gitlab.com: Permission denied报错
- TechCrunch Disrupt大会:YouTube创始人陈士骏专访
- ffmpeg——简单播放器代码
- 聚类分析matlab