2016-09-29 72 views
-1

我有一個自定義組合框,當您單擊組合框的箭頭時,將打開一個單獨的控件。我想調用'LostFocus'事件處理程序來關閉自定義控件,當你失去了組合框的焦點。當您單擊窗體背景時,Winforms控件LostFocus事件不會觸發

如果您單擊另一個控件(如文本框),此功能正常工作,但如果您單擊窗體的背景則不會觸發。

我想模仿當你點擊關閉正常組合框的下拉菜單的功能。

+0

也許是因爲直到你轉移到另一個控制它沒有失去焦點,爲什麼不使用dropdownclosed事件? – BugFinder

+1

這是設計。當焦點實際上丟失時,您只能獲得LostFocus(偏好離開)。工具箱中有大量不需要焦點的控件。像PictureBox,Panel等等。和表單。它的子控件佔用焦點,就像你的自定義組合框一樣。這就是爲什麼下拉不能這樣工作,他們使用Capture屬性。這確保即使鼠標不在窗口內時也能看到鼠標事件。 –

+0

我已經嘗試了dropdownclosed,但是我沒有打開下拉菜單作爲自定義控件,因此禁用了下拉菜單。我確實試過把它打開,但我需要點擊打開的另一個控件,當下拉打開時這會自動觸發,我不想要。我需要一個事件,當你點擊背景時觸發,但找不到一個。或者,也許只是調用與下拉菜單關閉時所調用的相同的內容? – user3284707

回答

-1

乘坐bool變量在Form水平,並使其進入組合框(的GotFocus)事件. In離開(引發LostFocus)event of組合框, make it FALSE`期間true

訂閱Form MouseClick事件並檢查bool變量在這個事件。如果true,請在此處調用組合框離開事件。

相關問題