我在cxgrid列里绑定一个combobox,用select distinct checkitem from table1 order by checkitem添加下拉项目。
combobox允许输入不同项目。
现在问题来了,如果下拉项目里有DD项,则不能输入Dd,自动会更改为DD。
郁闷啊!

解决方案 »

  1.   

    ComboBox1.AutoComplete设为false试试
      

  2.   

    procedure TForm1.ComboBox1Change(Sender: TObject);
    begin
      TComBoBox(Sender).Text := UpperCase(TComBoBox(Sender).Text);
      TComBoBox(Sender).ItemIndex
        := TComBoBox(Sender).Items.IndexOf(TComBoBox(Sender).Text)
    end;
      

  3.   

    konhon(优华):不能区分大小写吧?
      

  4.   

    建议楼主参考
    ComboBox1.AutoComplete的源码
      

  5.   

    //我通过如下的代码实现了区分大小写的自匹配,希望可以给楼主一点帮助
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      ComboBox1.AutoComplete:=False;
    end;procedure TForm1.ComboBox1Change(Sender: TObject);
    function FindText(Text:String):Integer;
    var
      i:Integer;
    begin
      Result:=-1;
      for i:=0 to ComboBox1.Items.Count-1 do
      begin
        if Copy(ComboBox1.Items[i],1,Length(Text))=Text then
        begin
          Result:=i;
          Break;
        end;
      end;
    end;
    var
      Index:Integer;
      cbText:String;
    begin
      cbText:=ComboBox1.Text;
      if Length(TComboBox(Sender).HelpKeyword)<Length(cbText) then
      begin
        Index:=FindText(cbText);
        if Index>=0 then
        begin
          ComboBox1.ItemIndex:=Index;
          ComboBox1.SelStart:=Length(cbText);
          ComboBox1.SelLength:=Length(ComboBox1.Items[Index])-Length(cbText)+1;
        end;
      end;
      TComboBox(Sender).HelpKeyword:=cbText;
    end;