【发布时间】:2019-04-09 20:32:55
【问题描述】:
我有一个继承 Form 类的经典 Form1 类。
问题是我按下按钮并没有触发任何事件。
在 Form1 内部有一个 webBrowser,它占据了整个 Form1。
这是我的代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
WindowState = FormWindowState.Maximized;
KeyPreview = true;
PreviewKeyDown += wb_PreviewKeyDown;
}
private void wb_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
Console.WriteLine("EDOOOOOOOOO");
if (e.Control && e.KeyCode == Keys.C)
{
// Do something funny!
}
}
}
无论我按下什么按钮,wb_PreviewKeyDown 都不会触发。
【问题讨论】:
-
使用按钮点击事件而不是 keydown
-
该代码按预期工作,前提是您将它放在 Form 派生类中并调用 Show/ShowDialog 方法
-
当然,KeyDown 事件是针对键盘的,而不是针对按钮的
-
你确定
Form1在你按下键盘的时候有焦点吗? -
您之前应该提到您在该表单上使用了
WebBrowser。在那种情况下,Form1永远不会得到 keydown,因为WebBrowser会吃掉任何消息。