【问题标题】:Catching MAJ + TAB click on textbox捕捉 MAJ + TAB 点击文本框
【发布时间】:2016-11-28 10:45:34
【问题描述】:

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

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

【问题讨论】:

标签: c# winforms


【解决方案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

【讨论】:

    猜你喜欢
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多