up   up

解决方案 »

  1.   

         cmb.AutoCompleteSource = AutoCompleteSource.CustomSource;
               cmb.AutoCompleteMode = AutoCompleteMode.Suggest;
               System.Collections.ArrayList myLst = new System.Collections.ArrayList();
               myLst = CBaseFunc.GetName(tblName);
               foreach (string m in myLst)
               {
                   cmb.AutoCompleteCustomSource.Add(m);
               }
    设置autocopletesource 和 autocompletemode属性即可
      

  2.   

    自己定义了一个数据源?还是查询哪里的数据?
    可以给TextBox写一个textchange事件吧,每次改变都去查询数据源中的数据,遍历数据源看是否contains文本框的值,有的话添加到listbox中
      

  3.   

    AutoComplete 功能是通过实现 IAutoComplete2 Win32 接口实现的,估计不好改。或者如LS所说,自己实现。
      

  4.   

    textchange的事件是不是没输入一个字就会触发一次?
      

  5.   

    只说方法,你自己试着做。首次加载时把你需要模糊匹配的加载到内存表DataTable中用你所说的textbox+commobox。每次文本框改变时,通用dataview设置条件异步获取匹配成功的特定数量项,添加到commobox内,并显示(有个是否显示下拉列表的属性,设为真)出来。并且在点击后把其值赋给textbox,在此同时先关闭自动匹配标识。
      

  6.   

    dev组件有lookupedit控件可以实现. 
      

  7.   

    你这个想法只有自己做了,或者重写控件了。
    其实用textchange事件做就比较好。性能还要看你写的代码
      

  8.   

    查询了资料后,发现LookUpEdit不支持自由输入,所以只好用它的兄弟控件ComBoxEdit控件。ComBoxEdit控件能够不受数据源的影响而自由输入值
    参考http://www.cnblogs.com/dogxuefeng/archive/2012/11/15/2771234.html