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); }