读书人

请问关于textbox控件的焦点事件顺序

发布时间: 2012-01-15 22:57:49 作者: rapoo

请教,关于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事件后面的其它事件.

读书人网 >C#

热点推荐