为什么某些事件未在Visual Studio属性窗口中显示?

时间:2010-01-07 21:50:57

标签: visual-studio

我想为文本框添加一个事件,以便在它失去焦点时进行处理。我确信我记得某种LostFocus事件,但我没有在属性网格中看到它。但果然,如果我以编程方式访问它,事件就会存在。我正在使用VS2008 - 为什么这个事件(可能还有其他?)没有显示在属性网格中?

2 个答案:

答案 0 :(得分:6)

Control.LostFocus标有[BrowsableAttribute(false)]。这意味着它不会显示在“属性”窗口中。有关详细信息,请参阅BrowsableAttribute

这是宣言:

[BrowsableAttribute(false)]
public event EventHandler LostFocus

答案 1 :(得分:1)

LostFocus是一个麻烦的事件,这是WM_KILLFOCUS的SDK文档的精细打印,基础Windows消息:

处理此消息时,请勿进行任何显示或激活窗口的函数调用。这会导致线程产生控制并导致应用程序停止响应消息。有关更多信息,请参阅消息死锁。

改为使用Leave事件。