2010-11-08 59 views
3

有人知道任何事件或事件序列能夠處理,當用戶單擊組合框中的項目時?目前我看到在WinForms中從ComboBox觸發的唯一事件是SelectedIndexChanged或SelectedValueChanged。這些事件的問題在於,在用戶按下向上或向下箭頭(即使ComboBox未打開)時也會觸發其他場景。處理單擊組合框中的項目事件

ComboBox.SelectedIndexChanged += (o, e) => Console.WriteLine("ComboBox_SelectedIndexChanged"); 
ComboBox.SelectedValueChanged += (o, e) => Console.WriteLine("ComboBox_SelectedValueChanged"); 

有什麼想法?

+0

SelectedIndex值真的*做了*更改。這不應該是一個問題。子類化下拉窗口是非常難看的代碼,但在NativeWindow類中技術上可行。 – 2010-11-08 17:22:34

回答

3

如果您詢問用戶何時單擊ComboBox中的某個項目來選擇它,可以使用ComboBox.SelectionChangeCommitted事件。

+0

這有助於檢查組合框是否掉下來。當組合框被放下時,此事件觸發的唯一時間是用戶單擊它或點擊輸入時。 var comboBox =(ComboBox)sender; if(comboBox.DroppedDown)DoSomething(comboBox.SelectedItem); – 2010-11-08 21:01:54

相關問題