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;
}
}
C# 依据KeyEventArgs与组合键字符串相互转换的更多相关文章
- C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)
1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加: 2. 添加KeyPress / KeyDown事件: 1.KeyPress 和KeyDown .Ke ...
- WScript.SendKeys()的sendkeys发送组合键以及特殊字符
SendKeys.Send("^+{TAB}"); 使用SendKeys将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用Send ...
- SendKeys发送组合键
使用: using System.Windows.Forms;//添加命名空间引用 { SendKeys.SendWait("{DOWN}"); ppt.ppt_sendkey(& ...
- [No00008B]远程桌面发送“Ctrl+Alt+Delete”组合键调用任务管理器
向远程桌面发送"Ctrl+Alt+Delete"组合键的两种方法 1.在本地按下Ctrl+Alt+End,可以成功发送"Ctrl+Alt+Delete"组合键! ...
- js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入
设置快捷键 这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb). hotkeys on Githubhotkeys预览 创建 您将需要在您的系 ...
- PHP implode() 函数 把数组元素组合为字符串
http://www.w3school.com.cn/php/func_string_implode.asp PHP implode() 函数 PHP String 函数 实例 把数组元素组合为字符串 ...
- Windows Server 2008系统如何取消登录时要按Ctrl+Alt+Delete组合键
1.点桌面任务栏的“开始-->运行”在弹出的窗口中输入gpedit.msc . 2.输入gpedit.msc后,点击确定即打开了组策略编辑器.在组策略编辑器的左框内依次序展开(点前面的“+”号) ...
- Qt获取组合键
CTRL+Enter发送信息的实现 在现在的即时聊天程序中,一般都设置有快捷键来实现一些常用的功能,类似QQ可以用CTRL+Enter来实现信息的发送. 在QT4中,所有的事件都继承与QEvent这个 ...
- 这是高手最常用的第一快捷组合键 - imsoft.cnblogs
1.锁定电脑 2.要找电脑上的文件时,一般人会先找到“我的电脑”,然后点击打开,而高手总是很酷的,轻轻按下键盘上的Windows键不放然后再按E键,直接打开电脑的资源管理器,而一般人还在慢慢寻找“我的 ...
随机推荐
- VC眼中的众筹平台:将改变VC募集基金方式,成为下一个纳斯达克市场
“一个好的投资平台可能会成为像纳斯达克一样的市场”,这是投资人给予众筹平台的未来憧憬. ”从长远的角度来说,众筹平台可能会改变VC募集基金的方式“,戈壁投资合伙人蒋涛说,“从二级市场看,不论是企业的I ...
- OPENCV(3) —— 对XML和YAML文件实现I/O 操作
XML\YAML文件在OpenCV中的数据结构为FileStorage string filename = "I.xml"; FileStorage fs(filename, Fi ...
- shell中IF的用法介绍
一.语法结构 if [ condition ] then statements [elif condition then statements. ..] [else ...
- chgrp---改变文件或目录所属的用户组
chgrp命令用来改变文件或目录所属的用户组.该命令用来改变指定文件所属的用户组.其中,组名可以是用户组的id,也可以是用户组的组名.文件名可以 是由空格分开的要改变属组的文件列表,也可以是由通配符描 ...
- 2018 NOIP备战计划
2018 NOIP目标 (1)刷完紫书数论习题 (2)听51nod讲座和习题,根据其知识结构来备战. (3)刷完紫书动规 (4)初赛前两个星期左右开始复习 刷紫书动规的时候感觉偏难,进步缓慢.应该自己 ...
- Windows系统的关机、休眠和睡眠状态究的区别
原文:Windows系统的关机.休眠和睡眠状态究的区别 相信有些小伙伴跟我一样,对电脑的一些常用操作或名词不太熟悉,今天我们就简单来聊聊电脑的关机.休眠和睡眠状态究竟有何区别吧! 如果你在电脑左下角的 ...
- 实验记录三 通用输入输出(GPIO)
之前把全部程序都跑了一次后,得到了导师下一步的安排. 例如以下: 1.编写一个程序.实如今LCD上显示一个万年历,包含年月日 星期 还有室内的温度.2.编写一个程序,将原来的交通灯改为跑马灯. 期限是 ...
- hbase xshell
用Xshell登陆linux主机后,在hbase shell下死活不能使用backspace和delete删除误输的指令,只得不停退出,重登,仔细输..又错了,再退出,再登,仔细输...又错了...又 ...
- 从excel 获取内容 模块:xlrd
import xlrd # 获取表的对象 excel = xlrd.open_workbook(‘a.excel’) # 获取所有excel里的所有表 table_list = excel.sheet ...
- iOS Dev (51)加急审核
https://developer.apple.com/appstore/contact/? topic=expedite