我正在尝试捕获功能键 F1 到 F12 和 4 个箭头键和 Home、Insert、Delete、End、Page Up 和 Down 键。如何 ????
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
}
我正在尝试捕获功能键 F1 到 F12 和 4 个箭头键和 Home、Insert、Delete、End、Page Up 和 Down 键。如何 ????
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
}
覆盖表单的 ProcessCmdKey() 方法。在将键盘消息发送到具有焦点的控件之前,它会直接从消息循环中调用。这就是为什么覆盖 WndProc() 不起作用的原因。
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == (Keys.Control | Keys.F)) {
MessageBox.Show("What the Ctrl+F?");
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
从技术上讲,您还可以使用 KeyPreview = true 覆盖表单的 OnKeyDown 方法,但这是一个丑陋的 VB6 时代错误。