一、用鼠标点击控件,然后离开。
  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的顺序,运行两遍。这是为什么,请高手解惑。万分感谢。

解决方案 »

  1.   

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

  2.   

    我的疑问在于,在Validating事件中设CancelEventArgs.Cancel = true,当上一次按tab,本次点击鼠标试图将焦点移到别处时,Lostfocus  Leave Validating Enter GotFocus这些事件都回激发两次。 为什么会发生两次呢? 我只是点击了一下鼠标啊