代码之家  ›  专栏  ›  技术社区  ›  Axarydax

C捕获ctrl+pageup击键

  •  2
  • Axarydax  · 技术社区  · 14 年前

    我抓不到 Ctrl键 + 翻页 在WinForms应用程序中,在ListView控件中键入键。

    我正在使用此代码捕获击键-

    private void ListViewEx_KeyDown(object sender, KeyEventArgs e)
    {
    ...
    if(e.Control){
    if((e.KeyCode ^ Keys.Left) == 0)
        MessageBox.Show("Left"); //shows messagebox
    else if((e.KeyCode ^ Keys.PageUp) == 0)
        MessageBox.Show("PageUp"); //does not
    ...
    }
    

    我需要潜入WNDPROC来处理这个密钥吗?谢谢。


    编辑:我发现这是可行的,问题在于在ListControl到达之前封闭tabControl处理这些键。

    3 回复  |  直到 7 年前
        1
  •  4
  •   Fredrik Mörk    14 年前

    无需WNDPROC:

    if ((e.Modifiers & ModifierKeys) == Keys.Control && e.KeyCode == Keys.PageUp)
    {
        // ctrl + page up was pressed
    }
    
        2
  •  4
  •   Hans Passant    14 年前

    e.keydata参数包括修改键。让它看起来像这样:

      if (e.KeyData == (Keys.Control | Keys.PageDown)) {
        // Do your stuff
        Console.WriteLine("Ctrl+PgDn");
      }
    
        3
  •  2
  •   thelost    14 年前

    检查

    Keys.Control | Keys.PageUp
    
    推荐文章