ham*_*mze 2 c# keydown winforms
如何在KeyDown中确定按下了⇧+ Tab.
private void DateTimePicker_BirthDate_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Tab && e.Modifiers == Keys.Shift)
{
//do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
因为永远不会在同一秒内完全按下两个键,所以无法工作.你总是首先转向Shift,然后是另一个..
它无法工作,因为从来没有两个键完全按下同一秒.
你的代码不起作用你是对的,但你的理由是错误的.问题是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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12758 次 |
| 最近记录: |