C# 根据KeyEventArgs与组合键字符串相互转换
来源:互联网 发布:手机文件编辑软件 编辑:程序博客网 时间:2024/05/16 08:41
/// 快捷键相关的类 /// </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; } }
0 0
- C# 根据KeyEventArgs与组合键字符串相互转换
- C#字符串与二进制相互转换
- C# ASCII与字符串间相互转换
- C# 字符串与字节数组相互转换
- Xml字符串与C#对象之间相互转换
- C#下字符串与字节数组之间的相互转换
- C#数字进制间与字符串类型相互转换
- C# 中 json对象与字符串的相互转换
- 【.Net码农】C# List<string>与String字符串相互转换
- C#字节数组与字符串相互转换代码案例
- C#二进制与字符串之间的相互转换
- C#字节数组与字符串相互转换代码案例
- 字符串与颜色相互转换
- 文件与字符串相互转换
- 字符串与HTML相互转换
- 字符串与HTML相互转换
- VB与C#相互转换
- C# 枚举、字符串、值的相互转换
- [LeetCode]232.Implement Queue using Stacks
- java 二进制(原码 反码 补码),位运算,移位运算,约瑟夫问题
- ubuntu 13.10下安装curl
- 安全驾驶-超车(十五)
- Android 自定义下拉刷新ExpandableListView
- C# 根据KeyEventArgs与组合键字符串相互转换
- 解决Android Studio Import Sample网络连接失败问题
- SpringMVC注解
- 机房收费之数据库serial列
- 安全驾驶-氙气大灯(十六)
- 安全驾驶-开夜车(十七)
- CAS实现SSO单点登录原理
- 安全驾驶-安全距离(十八)
- 生产环境Hadoop大集群完全分布式模式安装 NFS+DNS+awk