gpt4 book ai didi

c# - 如何在 KeyDown 中确定按下了 Shift + Tab

转载 作者:行者123 更新时间:2023-11-30 19:29:44 25 4
gpt4 key购买 nike

我如何在 KeyDown 中确定 + Tab 被按下。

private void DateTimePicker_BirthDate_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab && e.Modifiers == Keys.Shift)
{
//do stuff
}
}

无法工作,因为从来没有在同一秒内完全按下两个键。你总是先换类,然后再换类..

最佳答案

It can't work, because never both keys are pressed exactly in the same second.

你的代码不能正常工作是对的,但你的理由是错误的。问题在于 Tab 键具有特殊含义 - 它会导致焦点发生变化。您的事件处理程序未被调用。

如果您使用不同的键而不是 Tab,那么您的代码将正常工作。


如果您真的想为一个特定控件更改Shift + Tab 的行为,可以通过重写 来完成ProcessCmdKey 但请记住,许多用户使用 Tab 键在表单中导航,更改此键的行为可能会惹恼这些用户。

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (DateTimePicker_BirthDate.Focused && keyData == (Keys.Tab | Keys.Shift))
{
MessageBox.Show("shift + tab pressed");
return true;
}
else
{
return base.ProcessCmdKey(ref msg, keyData);
}
}

关于c# - 如何在 KeyDown 中确定按下了 Shift + Tab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com