我有一个带有一些标签和两个按钮的表单,按钮是是和否。
出于某种原因,我无法确定用户是否在表单上按了y或n键。如果我对文本框使用相同的事件,例如它可以正常工作。
private void Form2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Y)
{
btnYes.PerformClick();
}
}
似乎该事件永远不会发生。 那是为什么?
答案 0 :(得分:2)
解决方案1:您需要将表单的KeyPreview
属性设置为true
。
试试这个:
this.KeyPreview = true;
解决方案2:但我建议您覆盖ProcessCmdKey()
方法,如下所示
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Y) {
btnYes.PerformClick();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}