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

  

 

posted @ 2021-03-06 15:46  包子789654  阅读(1148)  评论(0编辑  收藏  举报