在combobox或dbcombobox 下拉的时候怎样分两列显示两字段的内容

解决方案 »

  1.   

    如果单纯实现这个功能可以考虑用edit配合DBGrid使用,可能效果要好些;^_^
      

  2.   

    利用combobox的OnDrawItem事件,注意将Style 设置为csOwnerDrawFixed我刚做了个例子,如下:procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    begin
      combobox1.Canvas.FillRect(Rect);
      with combobox1.Canvas do
      begin
        TextRect(Rect, Rect.Left, Rect.Top, 'First');
        Rect.Left := Rect.Left + 30;  //30为第一列的宽度,你可以调整
        TextRect(Rect, Rect.Left, Rect.Top, 'Second');
      end;
    end;
      

  3.   

    comboboxEx應該有你要的功能,在d7自帶的!
      

  4.   

    ComboBox1.Items.Add(Field1+'   '+Field2)
      

  5.   

    ComboBox1.Items.Add(Format('%-10s  %-20s',[Field1,Field2])
      

  6.   

    ComboBox1.Items.Add(Format('%-10s  %-20s',[Field1,Field2]));
      

  7.   

    用TDBLookupComboboxEh 控件或使用FIRST CLASS里面的一个控件TwwDBLookupCombo//用TDBLookupComboboxEh 控件ComEh_BankID : TDBLookupComboboxEh ‘
    ADS_BankID: TADODataset;。...
    ADS_BankID.Connection := Dm_con.ado_con2;
        ADS_BankID.CommandText := 'select * from T_Bank where type = ''2''';
        try
            ADS_BankID.Active := true;
        except
            Application.MessageBox('得网点代码表错误!','系统提示',MB_OK+MB_IconInformation);
        end;
        {绑定下拉列表}
        DataSource1.DataSet := ADS_BankID;
        ComEh_BankID.ListSource := DataSource1;
        ComEh_BankID.ListField := 'BankID;BankName';
        {绑定下拉列表KeyField的值}
        ComEh_BankID.KeyField := 'BankID';
    //或者用TwwDBLookupCombo 控件
    with wwDBLookupCombo1 do
      begin
        Selected.Clear;
        Selected.Text :=
             'billid'#9'14'#9'单号'#9'F'#13 
           + 'StockName'#9'14'#9'仓库名称'#9'F'#13
           + 'CstmNm'#9'18'#9'供应商名称'#9'F'#13
           + 'OperDate'#9'18'#9'制单日期'#9'F';
      end;
    或直接指定。
      

  8.   

    在增加时加入空格:ComboBox1.Items.Add(Field1+'   '+Field2);