combobox加载了一些数据以后,可否在combobox中录入某个字符,使得combobox的选择项中只有包含该字符的选项,如:录入'加工'字符串后,只显示‘加工一车间、半成品加工’等含有‘加工’的数值?

解决方案 »

  1.   

    AutoComplete 设置成True如果这样不行的话
    你只能在OnKeyUp或是OnKeyPress事件里处理你每次输入的内容 查找匹配的字符串了
      

  2.   

    使用DBComboBox,设置DataSet的Filter属性,可以实现你的要求。
      

  3.   

    设置DataSet的Filter的屬性,包括你所要的關鍵字的值
      

  4.   

    设置DataSet的Filter的屬性,需要连接数据库,也可以编写代码实现这样的功能。
      

  5.   

    在onChange事件中,加入读取数据库的代码。
      

  6.   

    这样搞的话,他数据量稍微大些,那会搞死人的。
    我碰到这种事情,一般是敲下回车,才给他过滤数据
    procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
    var
      AFilter:string;
    begin
      if Key =#13 then
        if Trim(ComboBox1.Text) <> '' then
           Fun_InitCombo(Afilt);
    end;function TForm1.Fun_InitCombo(Afilt: string): Boolean;
    var
      ASql:string;
    begin
      ASql := 'select 加载字段 from 表 ';
      if Afilt <> '' then
        ASql := ASql + ' where 字段 like ' + QuotedStr('%'+Afilt+'%');  ADOQuery1.Close;
      ADOQuery1.SQL.Text := ASql;
      ADOQuery1.Open;  ADOQuery1.First;
      ComboBox1.Clear;
      while not ADOQuery1.Eof do
         begin
           ComboBox1.Items.Add(ADOQuery1.FieldByName('').AsString);
           ADOQuery1.Next;
         end;
    end;如果你用的combo是数据感知控件,做这里要容易的多
    另外,如果你需要录入字母能取得汉字,如输入:bjc ,那么可以过滤出:北京城,北疆场等
    请另外开贴
      

  7.   


    输入:bjc ,那么可以过滤出:北京城,北疆场等
    这个怎么实现?