日期:2014-05-20  浏览次数:20861 次

请教,关于textbox控件的焦点事件顺序中,CancelEventArgs.Cancel=true的疑惑
一、用鼠标点击控件,然后离开。
  Enter     GotFocus     LostFocus     Leave     Validating     Validated

二、用鼠标,当 Validating 中   CancelEventArgs.Cancel   =   true   时:
  Enter     GotFocus     LostFocus     Leave     Validating     Enter     GotFocus
  
三、用tab键经过一个控件时。
  Enter     GotFocus     KeyUp     Leave     Validating     Validated     LostFocus
  
四、用tab键当 Validating 中   CancelEventArgs.Cancel   =   true   时
  Enter     GotFocus     KeyUp     Leave     Validating     Enter     KeyUp

以上这些都没有问题,问题是:Validating中CancelEventArgs.Cancel   =   true,且当上一次用tab键经过,本次用鼠标点击别处离开时,会按照Lostfocus     Leave   Validating   Enter   GotFocus的顺序,运行两遍。这是为什么,请高手解惑。万分感谢。

------解决方案--------------------
不管是哪一个顺序,用CancelEventArgs.Cancel = true后总是会取消排在Validating事件后面的其它事件.