本帖最后由 jspper 于 2014-05-21 15:23:40 编辑

解决方案 »

  1.   

          
      private void textBox1_Leave(object sender, EventArgs e)
            {
                MessageBox.Show("Leave!");
            }
      

  2.   

    我在校验过程中设置为:如果textBox1为空,提示textBox1为空需输入数值,始终聚焦textBox1。这时取消和关闭按钮就不能执行了,必须随便输入点儿东西才能取消或关闭窗体。能否在textBox中按下Enter或Tab时执行同样的代码
      

  3.   

    private void 校验车牌号码()
            {
                if (textBox车牌号.Text.Trim() == "")
                {
                        MessageBox.Show("请输入车牌号码!");
                        textBox车牌号.Focus();
                 }
                else 
                {
                    if (textBox车牌号.Text.Length != 7)
                    {
                        MessageBox.Show("车牌号码不符合法律规定!");
                        textBox车牌号.Focus();
                    }
                    else
                    {
                        if (textBox车牌号.Text.Trim().Substring(0, 2) == "京A")
                        {
                            MessageBox.Show("本地车辆不参加活动,请重新输入!");
                            textBox车牌号.Text = "";
                            textBox车牌号.Focus();
                        }
                        else
                        {
                            在数据库中比对车牌号();
                        }
                    }
                }
            }
      

  4.   

    不输入就不让关闭,强盗啊!Leave 当然是首选,多个控件共用一个就行了,用 Sender 来识别哪个输入框。
      

  5.   

    用Enter键校验车牌号还可以取消操作或关闭,用Leave事件如果输入错误就不能取消或关闭了。用Leave事件实现只能取消校验中的textBox聚焦了,还有没有更好的方法?
      

  6.   


    在VS2010中 Leave事件代替了LostFocus事件吧
      

  7.   


    在VS2010中 Leave事件代替了LostFocus事件吧
    this.txtName.LostFocus+=......
      

  8.   

    LostFocus和Leave用来执行我的校验过程效果一样,如果输入错误就不能点击取消或关闭按钮了。我用下面的方法实现目的了:在TextBox中按回车键直接校验车牌号,按TAB键则在下一TextBox的Enter事件中校验车牌号这样就能保证即使不输入内容也能点击取消或关闭按钮。