C# WinForm快捷键设置技巧

2019-12-26 14:14:05王冬梅
  •         HotKeyValue = (int)e.Modifiers;          break; 
  •       case Keys.Control | Keys.Alt | Keys.Shift:          HotKeyString += "Ctrl + Alt + Shift + "; 
  •         HotKeyValue = (int)e.Modifiers;          break; 
  •     }      if (e.KeyCode != Keys.None && e.KeyCode != Keys.ControlKey && e.KeyCode != Keys.Menu && e.KeyCode != Keys.ShiftKey) 
  •     {        HotKeyString += KeyCodeToString(e.KeyCode); 
  •       HotKeyValue += (int)e.KeyCode;      } 
  •   }    else 
  •   {      if (e.KeyCode == Keys.Delete || e.KeyCode == Keys.Back) 
  •     {        HotKeyString = "无"; 
  •       HotKeyValue = -1;      } 
  •     else if (e.KeyCode != Keys.None)      { 
  •       HotKeyString = KeyCodeToString(e.KeyCode);        HotKeyValue = (int)e.KeyCode; 
  •     }    } 
  •   if (HotKeyValue == 0)      HotKeyValue = -1; 
  •   TextBox txtHotKey = (TextBox)sender;    txtHotKey.Text = HotKeyString; 
  •   txtHotKey.Tag = HotKeyValue;    txtHotKey.SelectionStart = txtHotKey.Text.Length; 
  • }  /// 
  • /// 将按键转换成相应字符  /// 
  • /// 按键  /// 字符 
  • private string KeyCodeToString(Keys KeyCode)  { 
  •   if (KeyCode >= Keys.D0 && KeyCode <= Keys.D9)    { 
  •     return KeyCode.ToString().Remove(0, 1);    } 
  •   else if (KeyCode >= Keys.NumPad0 && KeyCode <= Keys.NumPad9)    { 
  •     return KeyCode.ToString().Replace("Pad", "");    }