2010-05-08 61 views
14

我有一個簡單的問題可能是有人問我之前,但我找不到它。讓我說我有數據庫,有一些數據從數據庫,我想綁定到一個組合框我使用標準代碼這Comobox事件SelectedValueChanged

comboBox1.BeginUpdate(); 
comboBox1.ValueMember = "id"; 
comboBox1.DisplayMember = "name"; 
comboBox1.DataSource = dt; 
comboBox1.EndUpdate(); 

的問題是在這種結合事件SelectedValueChanged是fired.The問題是,重新綁定組合幾次當outher值改變,每一次我必須這樣做sometihn這樣

comboBox1.SelectedIndexChanged -= new System.EventHandler(this.comboBox1_SelectedValueChanged); 

我的問題有沒有更好的方法可以跳過事件時,我來自從用戶input.The問題不是數據綁定是我想要做一些如何globaly在我的控制,它繼承組合框,而不是從 最好的問候,
Iordand

+1

你能想到另一種方式:u能作出一個全局變量設置爲false,並在其上該事件檢查和u完成終究結合將其設置爲true – 2010-05-08 07:48:24

回答

18

嘗試使用SelectionChangeCommitted事件。

從MSDN文檔:

SelectionChangeCommitted只有當用戶改變 組合框中選擇提高。 不要使用的SelectedIndexChangedSelectedValueChanged捕捉用戶改變,在選擇編程方式更改,因爲這些事件 也提高。

+0

救了我一些時間,謝謝。 – 2012-05-18 14:59:10

0

我每次做的每太空裂解裝置說過,我一直都這麼做。我創建了一個名爲_isLoading的全局布爾變量,並在加載我的組合框時將其設置爲true,然後在完成時將其設置爲false。然後在事件處理程序的第一行是

if(_isLoading) return;