我做了一个窗体,里面有textbox.由于要验证textbox输入是否符合要求,我在textbox里加了Leave事件,在这里验证输入是否正确,如果不正确会提示。但是我想当焦点从textbox直接移到buttoncancel上时,textbox内容就算有错也不要提示消息(也就是不要出现Leave事件了)。要怎么改?

解决方案 »

  1.   

    在Leave事件里加上
    if (!buttoncancel.Focused)
    {
    //验证代码
    }
      

  2.   

    编写TextBox的Validating 事件 ,把代码的验证写到这个事件里,然后把不需要验的控件的属性CausesValidation设置为False就可以了,比如btnCancel.CausesValidation=false;
    这样btnCancel就不会引起TextBox的Validating 而弹出对话框了。
      

  3.   

    去掉TEXTBOX的LEAVE事件不就行了,当前看来你那个事件没用了
      

  4.   

    使用Validating 而去掉Leave事件。使用控件的CausesValidation属性来决定是否在控件要失去焦点时执行Validating事件。我觉得我说的挺清楚了。