RT,我只知道combobox中这样写可以根据第一个字符匹配,我现在想根据输入的字符自动模糊匹配含有这个字母的项
例如:combobox中有项:
NO.1
NO.2
NO.3
4
5
如果是根据将属性AutoCompleteMode改为SuggestAppend,AutoCompleteSource改为ListItems,DropDownStyle改为Simple,只能实现输入第一个字符匹配的显示。比如我输入4,可以显示4;我输入1,就没找到1
我想实现的是:我输入1,可以找到NO.1
求教~~  谢谢

解决方案 »

  1.   

    我感觉如果需要经常进行模糊比对,是不是开辟一块内存,然后将出现的字符的ASCLL值与存在该字符的数据连接起来,然后进行模糊比对时,可以根据用户输入的字符轻松找到所有包含该字符的数据
      

  2.   

    界面一个TextBox1一个ComBoBox,根据TextBox的值匹配            //先绑定数据到ComBoBox
                DataTable data = new DataTable();//定义成全局
                data.Columns.Add("column1", typeof(int));
                data.Columns.Add("column2", typeof(string));
                DataRow dr1 = data.NewRow();
                dr1["column1"] = 1;
                dr1["column2"] = "NO.1";
                DataRow dr2 = data.NewRow();
                dr2["column1"] = 2;
                dr2["column2"] = "NO.2";
                DataRow dr3 = data.NewRow();
                dr3["column1"] = 3;
                dr3["column2"] = "NO.3";            data.Rows.Add(dr1);
                data.Rows.Add(dr2);
                data.Rows.Add(dr3);
                this.comboBox1.DataSource = data;
                this.comboBox1.DisplayMember = "column2";
            private void textBox1_TextChanged(object sender, EventArgs e)
            {
                string sn = "column2 like '%" + this.textBox5.Text.Trim() + "%'";            DataRow[] dr = data.Select(sn);
                foreach (DataRow d in dr)
                {
                    this.comboBox1.DataSource = d.ItemArray.ToList();
                    this.comboBox1.DisplayMember = d.ItemArray[1].ToString();
                }
            }应该可以给你点思路
      

  3.   

    combobox总是左匹配的,没法设置,你必须自己从listbox去扩展
      

  4.   

    不能靠autocompelete来做
    自己写吧
    textchanged事件 重新加载 数据源 然后选中