/// 快捷键相关的类/// </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与组合键字符串相互转换相关推荐

  1. Bash基础(2) 通配符 组合键 数据重定向 管道 tee

    Bash基础(2)     通配符  组合键  数据重定向  管道  tee命令 1 文本名"通配符" *:匹配任意长度的任意字符: ?:匹配任意单个字符: []: 匹配指定范围内 ...

  2. 如何在 JavaFX 的 TextArea 实现回车发送信息而不换行,但组合键 Ctrl + Enter 换行

    如何在 JavaFX 的 TextArea 实现回车发送信息而不换行,但组合键 Ctrl + Enter 换行   JavaFX 的恼人之处在于很多基本的操作都要自己亲力亲为.在默认情况下,在 Tex ...

  3. VB.NET 按键代码 及组合键

    使用  SendKeys  将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用  Send.若要等待键击启动的任何进程,请使用  SendWait.  ...

  4. 图片和字符串相互转换

    http://blog.csdn.net/rmm0001/article/details/6692718 登录 | 注册 rmm0001的专栏 目录视图 摘要视图 订阅 [公告]博客系统优化升级    ...

  5. linux shift f11,然后按下CTRL+SHIFT+F11组合键

    一.word域的含义.概念 WORD域的英文意思是范围,类似数据库中的字段,实际上,它就是Word文档中的一些字段.每个Word域都有一个唯一的名字,但有不同的取值. 首先,我们了解几个与域相关的概念 ...

  6. C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)

    1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加:  2. 添加KeyPress / KeyDown事件: 1.KeyPress 和KeyDown .K ...

  7. winform屏蔽Alt+F4组合键以防止用户关闭对话框

    winform屏蔽Alt+F4组合键以防止用户关闭对话框,屏蔽Alt + F4的方法有很多,这里列出了一个比较简单而奏效的方法. 1. 捕获窗体的KeyDown事件 给窗体添加KeyDown事件,然后 ...

  8. php 字符串转换数组,PHP数组与字符串相互转换

    PHP数组与字符串相互转换 字符串与数组的转换在程序开发过程中经常使用,PHP 主要使用 explode()函数和 implode()函数实现,下面我们分别进行详细讲解. 1.使用 explode() ...

  9. react 监听组合键_投资组合中需要的5个React项目

    react 监听组合键 You've put in the work and now you have a solid understanding of the React library. 您已经完 ...

最新文章

  1. Spring Boot轻松理解动态注入,删除bean
  2. Ubuntu14.04安装JDK
  3. python is not allowed to run_【无法解决】PySpider的部署运行而非调试界面上RUN运行
  4. 深度学习(莫烦 神经网络 lecture 3) Keras
  5. 记住:永远不要在MySQL中使用“utf8”,请使用“utf8mb4” 程序员
  6. 七夕新浪漫,让AI黑科技带你们提前看看爱情的结晶
  7. cpython python 区别面试_python基础教程之千万不要错过这几道Python面试题
  8. Teamcenter 入门开发系列问答(3)
  9. 生物信息学的现状与展望
  10. MDK5 (Keil5)注册机破解
  11. simscape做一个简单倒立摆
  12. Qt echarts 教程(2):qt echarts 数据动态绑定
  13. 计算机显示10的负次方,我输入10的9次方在EXCEL里,为什么总变成日期了?怎么办/excel10的负次方怎么打...
  14. 您的服务器组件没有得到合法授权,服务器将会受限模式运行
  15. Golang 从0到1之任务提醒(二)
  16. 用Python实现温度转换程序
  17. Access数据库的.ldb文件
  18. 思维为何会越来越原地踏步No.209
  19. 爬虫破解js加密破解(二) 有道词典js加密参数 sign破解
  20. 手把手转行|小步试错,逐步迭代

热门文章

  1. Exynos4412 文件系统制作(三)—— 文件系统移植
  2. VC++ 读取和保存文件对话框及默认目录
  3. ar 和 nm 用法
  4. VC按最小化、关闭按钮、Esc都隐藏主窗口
  5. Linux中自带正则表达式应用举例
  6. [NodeJs] 如何使用nodejs对base64进行编解码?
  7. [Redux/Mobx] 说说redux的优缺点分别是什么?
  8. 带你封装一个上传图片组件(ant design+react)
  9. 小程序学习(2):vs code 安装插件
  10. 前端学习(3121):react-hello-react的总结state