private void Hotkey_KeyDown(object sender, KeyEventArgs e) { bool isLetterOrDigit = char.IsLetterOrDigit((char)e.KeyCode); if (isLetterOrDigit) { // Format modifier text and generate modifier int for hotkey construction string mod = ""; int imod = 0x0; if (e.Modifiers.ToString() != "None") { mod = e.Modifiers.ToString().Replace(",", " +") + " + "; foreach (var m in e.Modifiers.ToString().Replace(" ", "").Split(',')) { if (m == "Control") { imod += GlobalHotkey.Constants.CTRL; } else if (m == "Alt") { imod += GlobalHotkey.Constants.ALT; } else if (m == "Shift") { imod += GlobalHotkey.Constants.SHIFT; } } } GlobalHotkey hotkey = (GlobalHotkey)(((TextBox)sender).Tag); // Textboxes are tagged with corresponding GlobalHotkey in Form1 constructor hotkey.ChangeBind(imod, e.KeyCode); ((TextBox)sender).Text = mod + e.KeyCode; } }