winform--回车或空格自动触发了Button的Click事件问题--this.textBox1.Focus()不管用问题
1,现象:我打开登录窗体,我按回车或空格,窗体闪退

2,找了好久,也删除了好久,才找到的问题。原来是回车或空格自动触发了关闭按钮的Click事件。
private void btn_close_Click(object sender, EventArgs e)
{
this.Dispose();
}
3,分析:我在窗体Load事件中增加了this.txt_user.Focus();也没有自动获取焦点
private void FrmUserLogin_Load(object sender, EventArgs e)
{
this.txt_user.Focus();
this.DialogResult = DialogResult.None;
this.AcceptButton = this.btn_login;
myRfid = new MyRFID();
myRfid.PortName = "COM8";
myRfid.BaudRate = 9600;
myRfid.DataTriggerEvent += MyRfid_DataTriggerEvent;
myRfid.Start();
}
4,解决this.textBox1.Focus()不管用问题:

5,把焦点转移的输入框,回车或空格就没有自动触发关闭按钮的事件啦

最终解决
//屏蔽button的enter回车事件
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter && btn_auto_manual.Focused)
return true;
return base.ProcessCmdKey(ref msg, keyData);
}

浙公网安备 33010602011771号