2013-02-28 130 views
2

對不起,我認爲可能還不清楚的問題:在這裏我從我的代碼填充ComboBox爲什麼文本更改組合框中選擇更改

的問題是我有一個Windows窗體,並設置SelectedIndex到。我的問題是,當我寫東西全部ComboBoxSelectedIndex自動更改爲。

第一張照片顯示我還沒有填寫任何值時。第二個,是我在TextBox寫東西的時候。

Withoutchange enter image description here

我沒有TextChanged事件。我也會明確表示,我正在使用BindingSource表單。

我對ComboBox代碼是這樣的:

private void FillNationality() 
    { 

     var items = new BindingList<KeyValuePair<string, string>>(); 

     items.Add(new KeyValuePair<string, string>("E", "Expatriate")); 
     items.Add(new KeyValuePair<string, string>("R", "Resident")); 
     items.Add(new KeyValuePair<string, string>("Z", "Zambian")); 

     nationalityComboBox.DataSource = items; 
     nationalityComboBox.ValueMember = "Key"; 
     nationalityComboBox.DisplayMember = "Value"; 
     nationalityComboBox.SelectedIndex = 0; 
    } 

能否請你幫我這個問題?

+0

也許你的'Emp代碼'文本框的'TextChanged'事件有一個代碼? – 2013-02-28 07:04:40

+0

@GianAcuna不,我沒有寫任何類型的代碼文本更改 – 2013-02-28 07:05:27

+0

嗯,所有控件綁定到源?如果是這樣,我猜想改變文本框的內容導致一個新的記錄事件,這就是爲什麼所有其他控件被重置。 – 2013-02-28 07:07:13

回答

1

組合框被重置,因爲它是一定到文本框,並在文本框的文本更改爲界控件updated.I我不知道如果我的回答將防止這個問題,但不妨一試。在您的TextBoxTextChanged事件中添加以下代碼;

int value=1;//Set this value equal to index that you want to select. 

private void Textbox_TextChangedEvent(object sender,EventArgs e) 
{ 
    Combobox.SelectedIndex=value;//Change Combobox to you control's name. 
} 

我知道這看起來瘋狂,「每次選擇一個字符在TextBox'.But鍵入的內容是在試圖損失在組合框的值?

相關問題