我试图让我的应用程序的用户选择为某些功能设置键盘热键。
现在我TextBox在KeyDown事件中使用 a ,如下所示:
Key Hotkey;
private void SetHotKey(object sender, KeyEventArgs e)
{
(sender as TextBox).Text = e.Key.ToString();
Hotkey = e.Key;
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
这种方法的问题是我无法设置复杂的快捷方式,例如 [Ctrl]+[F4]。是否有一些 3rd 方控制可以帮助解决这个问题?或者更适合在文本框上订阅的事件?
更新:我已经更改了我的代码,但似乎我仍然做错了什么。
Key Hotkey;
bool lControl = false;
bool lAlt = false;
bool lShift = false;
private void SetHotKey(object sender, KeyEventArgs e)
{
var k = e.Key;
if (e.IsDown)
{
var tb = sender as TextBox;
tb.Text = "";
lControl = Keyboard.IsKeyDown(Key.LeftCtrl);
lAlt = Keyboard.IsKeyDown(Key.LeftAlt);
lShift = …Run Code Online (Sandbox Code Playgroud)