C# 依据KeyEventArgs与组合键字符串相互转换
/// 快捷键相关的类/// </summary>public static class HotKeyInfo{/// <summary>/// 依据KeyEventArgs生成组合键字符串/// </summary>/// <param name="e"></param>/// <returns></returns>public static string GetStringByKey(KeyEventArgs e){if (e.KeyValue == 16){return "Shift + ";}else if(e.KeyValue == 17){ return "Ctrl + ";}else if(e.KeyValue == 18){return "Alt + ";}else{StringBuilder keyValue = new StringBuilder();if (e.Modifiers != 0){if (e.Control){keyValue.Append("Ctrl + ");}if (e.Alt){keyValue.Append("Alt + ");}if (e.Shift){keyValue.Append("Shift + ");}}if ((e.KeyValue >= 48 && e.KeyValue <= 57)) //0-9{keyValue.Append(e.KeyCode.ToString());//keyValue.Append(e.KeyCode.ToString().Substring(1));}else{keyValue.Append(e.KeyCode);}return keyValue.ToString();}}/// <summary>/// 依据按键获得单一键值相应字符串/// </summary>/// <param name="e"></param>/// <returns></returns>public static string GetSingleStrByKey(KeyEventArgs e){if (e.KeyValue == 16){return "Shift";}else if (e.KeyValue == 17){return "Ctrl";}else if (e.KeyValue == 18){return "Alt";}else{return e.KeyCode.ToString();}}/// <summary>/// 依据string生成KeyEventArgs/// </summary>/// <param name="strKey"></param>/// <returns></returns>public static KeyEventArgs GetKeyByString(string strKey){Keys keyResult = new Keys();string[] strKeyCodes = strKey.Split('+');if (strKeyCodes.Length > 0){int numberKey;foreach (string keyEach in strKeyCodes){if (keyEach.Trim().ToUpper() == "CTRL"){keyResult = keyResult | Keys.Control;}else if (keyEach.Trim().ToUpper() == "SHIFT"){keyResult = keyResult | Keys.Shift;}else if (keyEach.Trim().ToUpper() == "ALT"){keyResult = keyResult | Keys.Alt;}//数字else if (int.TryParse(keyEach, out numberKey)){KeysConverter converter = new KeysConverter();Keys getKey = (Keys)converter.ConvertFromString('D' + keyEach);keyResult = keyResult | getKey;}//其它(字母,F0-F12)else{KeysConverter converter = new KeysConverter();Keys getKey = (Keys)converter.ConvertFromString(keyEach);keyResult = keyResult | getKey;}}}KeyEventArgs newEventArgs = new KeyEventArgs(keyResult);return newEventArgs;}}
转载于:https://www.cnblogs.com/liguangsunls/p/7010866.html
C# 依据KeyEventArgs与组合键字符串相互转换相关推荐
- Bash基础(2) 通配符 组合键 数据重定向 管道 tee
Bash基础(2) 通配符 组合键 数据重定向 管道 tee命令 1 文本名"通配符" *:匹配任意长度的任意字符: ?:匹配任意单个字符: []: 匹配指定范围内 ...
- 如何在 JavaFX 的 TextArea 实现回车发送信息而不换行,但组合键 Ctrl + Enter 换行
如何在 JavaFX 的 TextArea 实现回车发送信息而不换行,但组合键 Ctrl + Enter 换行 JavaFX 的恼人之处在于很多基本的操作都要自己亲力亲为.在默认情况下,在 Tex ...
- VB.NET 按键代码 及组合键
使用 SendKeys 将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用 Send.若要等待键击启动的任何进程,请使用 SendWait. ...
- 图片和字符串相互转换
http://blog.csdn.net/rmm0001/article/details/6692718 登录 | 注册 rmm0001的专栏 目录视图 摘要视图 订阅 [公告]博客系统优化升级 ...
- linux shift f11,然后按下CTRL+SHIFT+F11组合键
一.word域的含义.概念 WORD域的英文意思是范围,类似数据库中的字段,实际上,它就是Word文档中的一些字段.每个Word域都有一个唯一的名字,但有不同的取值. 首先,我们了解几个与域相关的概念 ...
- C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加: 2. 添加KeyPress / KeyDown事件: 1.KeyPress 和KeyDown .K ...
- winform屏蔽Alt+F4组合键以防止用户关闭对话框
winform屏蔽Alt+F4组合键以防止用户关闭对话框,屏蔽Alt + F4的方法有很多,这里列出了一个比较简单而奏效的方法. 1. 捕获窗体的KeyDown事件 给窗体添加KeyDown事件,然后 ...
- php 字符串转换数组,PHP数组与字符串相互转换
PHP数组与字符串相互转换 字符串与数组的转换在程序开发过程中经常使用,PHP 主要使用 explode()函数和 implode()函数实现,下面我们分别进行详细讲解. 1.使用 explode() ...
- react 监听组合键_投资组合中需要的5个React项目
react 监听组合键 You've put in the work and now you have a solid understanding of the React library. 您已经完 ...
最新文章
- Spring Boot轻松理解动态注入,删除bean
- Ubuntu14.04安装JDK
- python is not allowed to run_【无法解决】PySpider的部署运行而非调试界面上RUN运行
- 深度学习(莫烦 神经网络 lecture 3) Keras
- 记住:永远不要在MySQL中使用“utf8”,请使用“utf8mb4” 程序员
- 七夕新浪漫,让AI黑科技带你们提前看看爱情的结晶
- cpython python 区别面试_python基础教程之千万不要错过这几道Python面试题
- Teamcenter 入门开发系列问答(3)
- 生物信息学的现状与展望
- MDK5 (Keil5)注册机破解
- simscape做一个简单倒立摆
- Qt echarts 教程(2):qt echarts 数据动态绑定
- 计算机显示10的负次方,我输入10的9次方在EXCEL里,为什么总变成日期了?怎么办/excel10的负次方怎么打...
- 您的服务器组件没有得到合法授权,服务器将会受限模式运行
- Golang 从0到1之任务提醒(二)
- 用Python实现温度转换程序
- Access数据库的.ldb文件
- 思维为何会越来越原地踏步No.209
- 爬虫破解js加密破解(二) 有道词典js加密参数 sign破解
- 手把手转行|小步试错,逐步迭代
热门文章
- Exynos4412 文件系统制作(三)—— 文件系统移植
- VC++ 读取和保存文件对话框及默认目录
- ar 和 nm 用法
- VC按最小化、关闭按钮、Esc都隐藏主窗口
- Linux中自带正则表达式应用举例
- [NodeJs] 如何使用nodejs对base64进行编解码?
- [Redux/Mobx] 说说redux的优缺点分别是什么?
- 带你封装一个上传图片组件(ant design+react)
- 小程序学习(2):vs code 安装插件
- 前端学习(3121):react-hello-react的总结state