private void SetHotkey(KeyEventArgs e) { HotKeys.ModifierKeys modifierKeys = 0; var displayString = ""; foreach (var pressedModifier in KeyboardWindowsAPI.GetPressedModifiers()) { if ((pressedModifier & Keys.Modifiers) == Keys.Control) { modifierKeys |= HotKeys.ModifierKeys.Control; displayString += "Ctrl+"; } if ((pressedModifier & Keys.Modifiers) == Keys.Alt) { modifierKeys |= HotKeys.ModifierKeys.Alt; displayString += "Alt+"; } if ((pressedModifier & Keys.Modifiers) == Keys.Shift) { modifierKeys |= HotKeys.ModifierKeys.Shift; displayString += "Shift+"; } if (pressedModifier == Keys.LWin || pressedModifier == Keys.RWin) { modifierKeys |= HotKeys.ModifierKeys.Win; displayString += "Win+"; } } var normalPressedKeys = KeyboardWindowsAPI.GetNormalPressedKeys(); var key = normalPressedKeys.FirstOrDefault(); if (key == Keys.None) { hotkeysTextBox.Text = displayString; hotkeysTextBox.ForeColor = Color.Crimson; } else { hotkeysTextBox.Text = displayString + key; var tuple = (Tuple <DataFlow, HotKeys>)hotkeysTextBox.Tag; var newTuple = new Tuple <DataFlow, HotKeys>(tuple.Item1, new HotKeys(e.KeyCode, modifierKeys)); hotkeysTextBox.Tag = newTuple; hotkeysTextBox.ForeColor = AppModel.Instance.SetHotkeyCombination(newTuple.Item2, newTuple.Item1) ? Color.Green : Color.Red; } e.Handled = true; }
private void SetHotkey(KeyEventArgs e) { HotKeys.ModifierKeys modifierKeys = 0; var displayString = ""; if (e.Control) { modifierKeys |= HotKeys.ModifierKeys.Control; displayString += "Ctrl+"; } if (e.Alt) { modifierKeys |= HotKeys.ModifierKeys.Alt; displayString += "Alt+"; } if (e.Shift) { modifierKeys |= HotKeys.ModifierKeys.Shift; displayString += "Shift+"; } var keyCode = e.KeyCode.ToString(); if (new[] { 8, 16, 17, 18, 46 }.Contains(e.KeyValue)) { keyCode = ""; hotkeyTextBox.ForeColor = Color.Crimson; } hotkeyTextBox.Text = $"{displayString}{keyCode}"; if (!string.IsNullOrEmpty(keyCode)) { var tuple = (Tuple <AudioDeviceType, HotKeys>)hotkeyTextBox.Tag; var newTuple = new Tuple <AudioDeviceType, HotKeys>(tuple.Item1, new HotKeys(e.KeyCode, modifierKeys)); hotkeyTextBox.Tag = newTuple; hotkeyTextBox.ForeColor = AppModel.Instance.SetHotkeyCombination(newTuple.Item2, newTuple.Item1) ? Color.Green : Color.Red; } e.Handled = true; }