试图在表单中使用KeyDown事件来捕获导航箭头向上和箭头向下
本文关键字:导航 表单 事件 KeyDown | 更新日期: 2023-09-27 18:07:48
我有一个flowlayoutPanel,动态添加了大约50个userControl .
我在表单中使用this.KeyPreview = true
来捕获表单中的事件。现在我使用这个事件处理程序:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
}
为KeyDown能够捕捉空格键,+字符和导航键pageUp和pageDown。
我还需要捕捉导航箭头向上和箭头向下,但唯一的工作我的解决方案是使用KeyUp事件处理程序像这样。当我使用事件处理器Form1_KeyUp事件时,我可以使用导航键arrowUp和arroeDown。
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
}
我试图使用这个事件处理程序
private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
}
但是当我点击导航箭头向上和箭头向下时,它永远不会被调用。
我希望能够捕获一切,如(pageUp, pageDown,空格键,+字符箭头向上和箭头向下)在KeyDown事件处理程序
欢迎任何帮助
更简单的方法是重写ProcessCmdKey函数:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Up) {
// do something here
return true;
} else {
return base.ProcessCmdKey(ref msg, keyData);
}
}