C#中捕获按Ctrl + PageUp键按键
题
我无法捕获控制 + 上一页击键在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
不隶属于 StackOverflow