我有一个flowlayoutPanel,动态添加了大约50个userControl。
我在表单中使用this.KeyPreview = true
来捕获表单中的事件。
现在我使用这个事件处理程序:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
}
让KeyDown能够捕获空格键, + 字符以及导航键pageUp和pageDown。这很好用。
我还需要捕捉导航arrowUp和arrowDown但是唯一有效的 我的解决方案是像这样使用KeyUp的事件处理程序。 当我使用事件处理程序Form1_KeyUp事件时,我可以使用navigatiobn键arrowUp和arroeDown。
private void Form1_KeyUp(object sender, KeyEventArgs e)
{
}
我尝试使用此事件处理程序
private void Form1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
}
但是当我点击导航arrowUp和arrowDown时,永远不会调用它。
我希望能够在KeyDown的事件处理程序中捕获所有内容,例如(pageUp,pageDown,空格键,+字符arrowUp和arrowDown)
欢迎任何帮助。
答案 0 :(得分:0)
只是覆盖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);
}
}