我无法捕获控制 + 上一页击键在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来处理这个关键?感谢。


编辑:我发现这个作品,这个问题是在封闭的TabControl处理这些按键之前列表控件有他们

有帮助吗?

解决方案

没有必要的WndProc:

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

其他提示

在e.KeyData参数包括修改键。使它看起来是这样的:

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

检查

Keys.Control | Keys.PageUp
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top