![](/img/trans.png)
[英]How can I get the text from the TextBox_KeyDown event? WPF C#
[英]Simulating keyboard shortcuts in textbox_keydown event to handle?
我正在尝试使用文本框中的 keydown 事件将键盘快捷键(例如(Ctrl + A,Ctrl + Shift + X))模拟到文本框中,但我有点进退两难。 我正在使用列表框来记录在模拟键盘快捷键时引发的事件,但它会运行该事件两次。 我问我如何让它只登录到列表框,如果它只有一个修饰键(ctrl,alt,shift,winkey)+一个字母数字键(az 0-9)?
private void txtShortcut_KeyDown(object sender, KeyEventArgs e)
{
// Example key press: Ctrl + A
if (e.Shift || e.Control || e.Alt)
{
string s = (e.Shift ? Keys.ShiftKey.ToString() + " + " : "") + // Shift
(e.Control ? Keys.ControlKey.ToString() + " + " : "") + // Control
(e.Alt ? Keys.Menu.ToString() + " + " : "") + // Alt (menu)
e.KeyCode; // Key.
lbLogger.Items.Add(s);
// Logger Results:
// 1) ControlKey + ControlKey
// 2) ControlKey + A
// * I'm trying to get it to only post the second line and only log the line
// when a modifier key + a-z 0-9 key is pressed with it.
}
}
在这个仅在按下修饰键 + az 或 0-9 键的情况下进行记录的过程中,go 的最有效方法是什么?
private void txtShortcut_KeyDown(object sender, KeyEventArgs e)
{
// Example key press: Ctrl + A
if ((e.Shift || e.Control || e.Alt) &&
(((e.KeyCode >= Keys.a) && (e.KeyCode <= Keys.z)) ||
((e.KeyCode >= Keys.A) && (e.KeyCode <= Keys.Z)) ||
((e.KeyCode >= Keys.NumPad0) && (e.KeyCode <= Keys.NumPad9)) ||
((e.KeyCode >= Keys.D0) && (e.KeyCode <= Keys.D9))))
{
string s = (e.Shift ? Keys.ShiftKey.ToString() + " + " : "") + // Shift
(e.Control ? Keys.ControlKey.ToString() + " + " : "") + // Control
(e.Alt ? Keys.Menu.ToString() + " + " : "") + // Alt (menu)
e.KeyCode; // Key.
lbLogger.Items.Add(s);
// Logger Results:
// 1) ControlKey + ControlKey
// 2) ControlKey + A
// * I'm trying to get it to only post the second line and only log the line
// when a modifier key + a-z 0-9 key is pressed with it.
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.