捕获MAJ + TAB单击文本框

时间:2016-11-28 10:45:34

标签: c# winforms

当我按下TextBox中的 Shift Tab 来编写一些代码时,我必须抓住这个事件。有可能这样做吗?我在KeyUp事件中尝试了该测试:

    private void txtJustifTampon_KeyUp(object sender, KeyEventArgs e)
    {
     if (e.KeyCode == Keys.Tab && Control.ModifierKeys == Keys.ShiftKey)
        {
            //do stuff
        }            
    }

1 个答案:

答案 0 :(得分:1)

其中一种可能的方法是使用PreviewKeyDown代替KeyUp,因为

  

某些按键,例如 TAB ,RETURN,ESC和箭头键,   通常被某些控件忽略,因为它们不被考虑   输入键按

private void txtJustifTampon_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) {
  // If Shift + Tab pressed (i.e. Tab with Shift modifier) 
  if (e.KeyCode == Keys.Tab && e.Modifiers == Keys.Shift) {
    //TODO: put relevant code here (do stuff)
  }
}

请注意,我们应该使用Keys.Shift(不是Keys.ShiftKey)作为修饰符,我们应该将修饰符应用于事件参数(e.Modifiers)< / p>