自动完成ComboBox C#

我从Excel(大约2000个项目)加载庞大的数据库到combobox。 例如CD标题。 然后我从这2000年select1 CD标题。我想在这里使用自动完成,但我不知道如何..

// Loading items from Excel for (rCnt = 2; rCnt <= range.Rows.Count; rCnt++) { for (cCnt = 1; cCnt < 2; cCnt++) { str = Convert.ToString(saRet[rCnt,cCnt]); // Loading items to ComboBox ReferenceCombo.Items.Add(str); } 

在你的表单上,你需要为你的ComboBox设置两个属性:

AutoCompleteMode应该是Suggest,Append或者SuggestAppend。 我build议SuggestAppend。

AutoCompleteSource应该是ListItems。

除了设置约10分钟前约翰引用的属性,以下是我用来绑定我的combobox的一些代码:

 static BindingSource jp2bindingSource = new BindingSource(); void jp2FillCombo() { ComboBox comboBox1 = new ComboBox(); comboBox1.Items.Clear(); object[] objs = jp2Databind(new DataSet(), "Table1", "Column1", true); comboBox1.Items.AddRange(objs); } static object[] jp2Databind(DataSet dataset, string tableName, string columnName, bool unique) { jp2bindingSource.DataSource = dataset; jp2bindingSource.DataMember = tableName; List<string> itemTypes = new List<string>(); foreach (DataRow r in dataset.Tables[tableName].Rows) { try { object typ = r[columnName]; if ((typ != null) && (typ != DBNull.Value)) { string strTyp = typ.ToString().Trim(); if (!String.IsNullOrEmpty(strTyp)) { if (unique) { if (!itemTypes.Contains(strTyp)) { itemTypes.Add(strTyp); } } else { itemTypes.Add(strTyp); } } } } catch (Exception err) { Global.LogError("Databind", err); } } try { itemTypes.Sort(); } catch (Exception err) { Console.WriteLine(err.Message); } return itemTypes.ToArray(); } 

这个方法为你做

  private void LoadStuffNames() { try { string Query = "select stuff_name from dbo.stuff"; string[] names = GetColumnData_FromDB(Query); comboName.AutoCompleteMode = AutoCompleteMode.Suggest; comboName.AutoCompleteSource = AutoCompleteSource.CustomSource; AutoCompleteStringCollection x = new AutoCompleteStringCollection(); if (names != null && names.Length > 0) foreach (string s in names) x.Add(s); comboName.AutoCompleteCustomSource = x; } catch (Exception ex) { } finally { } } 

并根据需要实现“GetColumnData_FromDB”