2010-01-07 99 views
0

我想爲文本框添加一個事件來處理它何時失去焦點。我確信我記得某種LostFocus事件,但我沒有在「屬性」網格中看到它。但是果然,如果我以編程方式訪問它,事件就會存在。我正在使用VS2008 - 爲什麼此事件(也可能是其他?)沒有顯示在屬性網格中?爲什麼某些事件在Visual Studio屬性窗口中未顯示?

回答

6

Control.LostFocus標有[BrowsableAttribute(false)]。這意味着它不會顯示在屬性窗口中。詳情請參閱BrowsableAttribute

這裏的聲明:

[BrowsableAttribute(false)] 
public event EventHandler LostFocus 
+0

+1我很好奇知道爲什麼?是否因爲他們希望我們使用Enter和Leave? – Coincoin 2010-01-07 22:02:25

1

引發LostFocus是一個麻煩的事件,這是來自SDK文檔的WM_KILLFOCUS,底層的Windows消息小字:

在處理此消息,不進行顯示或激活窗口的任何函數調用。這會導致線程產生控制權並可能導致應用程序停止響應消息。有關更多信息,請參閱消息死鎖。

改爲使用Leave事件。

相關問題