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#位元組陣列與字串轉換C#陣列字串
- 陣列與字串方法與相互轉換陣列字串
- JSON字串與HashMap相互轉換JSON字串HashMap
- java 字串與檔案相互轉換Java字串
- mysql時間與字串之間相互轉換MySql字串
- JavaScript陣列與字串相互轉換 join、splitJavaScript陣列字串
- c語言字串與整形,浮點數...相互轉換C語言字串
- C語言中字串與整數的相互轉換C語言字串
- javascript數字和字串相互轉換JavaScript字串
- 字串和陣列的相互轉換字串陣列
- 字串和數字的相互轉換字串
- C#中JSON字串和Dictionary字典型別的相互轉換C#JSON字串型別
- C 語言整數與字串的相互轉換介紹字串
- 【轉載】Python字串操作之字串分割與組合Python字串
- iOS字串和陣列的相互轉換iOS字串陣列
- javascript字串和ascii碼的相互轉換JavaScript字串ASCII
- javascript數字和字串的相互轉換JavaScript字串
- SQL Server 字串和時間相互轉換SQLServer字串
- UIImage與Iplimage相互轉換UI
- SDOM與QDOM相互轉換
- DataTable與List相互轉換
- C# byte陣列與Image相互轉換的方法C#陣列
- javascript中字串和陣列的相互轉換JavaScript字串陣列
- java 物件與xml相互轉換Java物件XML
- XML與DataSet的相互轉換XML
- C#:檔案、byte[]、Stream相互轉換C#
- (C#)時間戳、DateTime相互轉換C#時間戳
- 三維空間 旋轉矩陣 四元數 尤拉角 相互轉換 組合旋轉矩陣
- JavaScript字串物件 之 根據字元返回位置、根據位置返回字元、字串操作方法JavaScript字串物件字元
- 關於HTTP和HTTPS相互轉換的問題--解決根據過濾器自動切換功能--可用HTTP過濾器
- json字串和js物件之間相互轉換JSON字串物件
- 判斷迴文串 字串/數字相互轉換字串
- 字串、數值 等型別的相互 安全轉換字串型別
- Python 漢字區位碼、字串 相互轉換Python字串
- string與數字相互轉換
- ascii碼與字元的相互轉換ASCII字元
- pandas中dataframe與dict相互轉換
- C#根據雜湊演算法生成類似uuid字串C#演算法UI字串