2017-02-16 2 views
0

Обычно я заполняю comoboBox этот путь:Как получить SelectedValue из CombBox с автозаполнением?

combo.DataSource = dt; 
combo.ValueMember = "id"; 
combo.DisplayMember = "name"; 

и легко я могу получить выбранное значение с этим кодом

int i = convert.toint(combo.selectedValue); 

, но после того, как я использую автозаполнение я не могу получить его:

con = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=ACDB;Integrated Security=True;Pooling=False"); 
da = new SqlDataAdapter("SELECT id, name from usersTBL", con); 
da.Fill(dt); 
AutoCompleteStringCollection datasource = new AutoCompleteStringCollection(); 
for (int i = 0; i < dt.Rows.Count; i++) 
{ 
    datasource.Add(dt.Rows[i][1].ToString()); 
} 
this.comboSearch.AutoCompleteCustomSource = datasource; 
this.comboSearch.AutoCompleteSource = AutoCompleteSource.CustomSource; 
this.comboSearch.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 
this.comboSearch.DataSource = dt; 
this.comboSearch.DisplayMember = "name"; 
this.comboSearch.ValueMember= "id"; 

Теперь, если я вручную выберу элемент из comboBox, я могу получить SelectedValue, но если я использую auto complete, я не могу. Я хочу получить SelectedValue при поиске выбранного элемента из ComboBox.

+0

да я сделал это, но в мой код, его только моя ошибка записи –

+0

* Когда * вы проверяете свойство SelectedValue? – LarsTech

+0

Вы пробовали 'comboSearch.Text'? – NPras

ответ

1

теперь работают хорошо

public frm_order() 
    { 

     InitializeComponent(); 

     AutoCompleteStringCollection farmerdatasource = new AutoCompleteStringCollection(); 
     for (int i = 0; i < farmer.GET_FARMER_NAME_HAVE_PRODUCT().Rows.Count;i++) { 
      farmerdatasource.Add(farmer.GET_FARMER_NAME_HAVE_PRODUCT().Rows[i][1].ToString()); 
     } 
     this.farmerNameCmb.AutoCompleteCustomSource = farmerdatasource; 
     this.farmerNameCmb.AutoCompleteSource = AutoCompleteSource.CustomSource; 
     this.farmerNameCmb.AutoCompleteMode = AutoCompleteMode.SuggestAppend; 




    } 

и Form_Load я заполнить выпадающий:

this.farmerNameCmb.DataSource = farmer.GET_FARMER_NAME_HAVE_PRODUCT(); 
      this.farmerNameCmb.DisplayMember = "farmerName"; 
      this.farmerNameCmb.ValueMember = "farmerID"; 

Теперь я могу искать в моем COMBOBOX и получить ValuMember Исли

Смежные вопросы