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;
}
}
相關文章
- JSON字串與HashMap相互轉換JSON字串HashMap
- 陣列與字串方法與相互轉換陣列字串
- java 字串與檔案相互轉換Java字串
- JavaScript陣列與字串相互轉換 join、splitJavaScript陣列字串
- mysql時間與字串之間相互轉換MySql字串
- C#中JSON字串和Dictionary字典型別的相互轉換C#JSON字串型別
- c語言字串與整形,浮點數...相互轉換C語言字串
- C 語言整數與字串的相互轉換介紹字串
- (C#)時間戳、DateTime相互轉換C#時間戳
- C#:檔案、byte[]、Stream相互轉換C#
- UIImage與Iplimage相互轉換UI
- DataTable與List相互轉換
- SDOM與QDOM相互轉換
- 【轉載】Python字串操作之字串分割與組合Python字串
- Python 漢字區位碼、字串 相互轉換Python字串
- string與數字相互轉換
- java 物件與xml相互轉換Java物件XML
- 判斷迴文串 字串/數字相互轉換字串
- C#位元組陣列byte[]和字串string如何互相轉換C#陣列字串
- string與char陣列相互轉換陣列
- pandas中dataframe與dict相互轉換
- C#根據雜湊演算法生成類似uuid字串C#演算法UI字串
- list與字串轉換字串
- JavaScript字串物件 之 根據字元返回位置、根據位置返回字元、字串操作方法JavaScript字串物件字元
- C# float浮點數與二進位制相互轉換(IEEE754)C#
- xml與陣列的相互轉換——phpXML陣列PHP
- jQuery 物件 與 原生 DOM 物件 相互轉換jQuery物件
- Golang 陣列和字串之間的相互轉換[]byte/stringGolang陣列字串
- pid,sid相互查詢,根據PID查詢sqlSQL
- 旋轉矩陣與尤拉角的相互轉換矩陣
- 塊級元素與內聯元素相互轉換
- Python字典格式與JSON格式的相互轉換PythonJSON
- C#/VB.NET 實現Word和ODT文件相互轉換C#
- json字串與物件互相轉換JSON字串物件
- js時間戳與日期格式的相互轉換JS時間戳
- C# 顯式轉換關鍵字 explicitC#
- 在Linux下如何根據域名自簽發OpenSSL證書與常用證書轉換Linux
- android中String與InputStream之間的相互轉換方式Android
- Apple開發_NSImage與CIImage之間的相互轉換APP