c#捕获Ctrl + PageUp按键

时间:2010-03-29 07:14:16

标签: c# winforms listview keyboard keystroke

我无法在WinForms应用程序的ListView控件中捕获 Ctrl + PageUp 击键。

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

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 个答案:

答案 0 :(得分:4)

不需要WndProc:

if ((e.Modifiers & ModifierKeys) == Keys.Control && e.KeyCode == Keys.PageUp)
{
    // ctrl + page up was pressed
}

答案 1 :(得分:4)

e.KeyData参数包含修饰键。看起来像这样:

  if (e.KeyData == (Keys.Control | Keys.PageDown)) {
    // Do your stuff
    Console.WriteLine("Ctrl+PgDn");
  }

答案 2 :(得分:2)

检查

Keys.Control | Keys.PageUp