【发布时间】:2011-10-14 19:30:16
【问题描述】:
我有一个带有按钮的表单。我想捕获 Form.KeyDown 事件。
private void buttonStart_Click(object sender, EventArgs e)
{
if (!this.gameRunning)
{
this.buttonStrat.Text = "Pause";
this.timer1.Enabled = true;
}
else
{
this.buttonStart.Text = "Continue";
this.timer1.Enabled = false;
}
this.gameRunning = !this.gameRunning;
}
但是,我在不支持 PAUSE 的情况下禁用了 buttonStart,它运行良好。由于我添加了 PAUSE 优势,Form.KeyDown 事件不会引发,buttonStart 是Focused。每当我禁用 buttonStart 时,它就会触发。
注意事项:
- 我已将
Form.KeyPreview设置为true,静止不动 - 我已将
Form.AcceptButton设置为null,静止不动 - 我已将
buttonStart订阅到Form.KeyDown,但仍然没有。
【问题讨论】:
-
覆盖表单的 OnProcessCmdKey() 以可靠地捕获快捷键。