2011-11-04 61 views
0

我遇到了組合框自動完成屬性的問題。每次使用自動完成選擇項目時,我都想觸發SelectionChangeCommited事件,但它不起作用。觸發事件的唯一方法是當我使用鼠標單擊並選擇一個選項,或當組合框聚焦時,我使用鍵盤上的箭頭鍵。如何使用自動完成屬性實現此行爲?C#自動完成組合框觸發器SelectionChangeCommited

我的組合具有這些屬性設置:

AutoCompleteMode = SuggestAppend 
AutoCompleteSource = ListItems 
FormattingEnabled = True 

在我的組合中的項目設置與數據源。

任何想法? 感謝

回答

2

如果你的意思是你希望它在你開始輸入註冊的改變:

呼叫從TextChanged事件的SelectionChangeCommited事件。

如果你從來沒有這樣做,我能找到的最基本的例子是在.net論壇here.當然,這裏顯示的方法有一些普遍性,但是很容易理解並適用於你的代碼。

編輯固定(如最近多數評論):

還有扳平事件一起,但使用的框TextChanged,可能會出現的有史以來一次類型,使用的SelectedIndexChanged,發生當您使用鼠標選擇一個自動建議的項目。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    comboBox1_SelectionChangeCommitted(sender, e); 
} 
+0

不是當我開始打字,我想在選擇建議的選項時觸發事件。 –

+0

啊,我明白你在做什麼。您仍然在使用鼠標進行選擇,但是當您單擊「建議」選項時,它不會將其註冊爲SelectionChangeCommited,是否正確? – KreepN

+0

這是正確的@KreepN –

0

你canuse一招,並呼籲comboBox1_SelectionChangeCommitted 在Validated事件

當在組合框中改變以往文本和用戶離開組合框將被解僱

private void comboBox1_Validated(object sender, EventArgs e) 
    { 
     comboBox1_SelectionChangeCommitted(sender, e); 

    } 
+0

恐怕你的方法不起作用 –

+0

你檢查過嗎? – DeveloperX

+0

是的,我檢查了,解決我的問題是上面的答案,謝謝 –