如题

解决方案 »

  1.   

    不知道有没有说清楚啊,就是items中的显示内容长度超过了combobox.width,怎么让它显示完全
      

  2.   

    对啊,我也想堤这个问题的,谁有办法啊?
    不光是这个控件,其它的如:TDBlistbox
      

  3.   

    用Delphi自己的ComboBox控件应该解决不了这个问题,除非把ComboBox.width加大,可以装一下Ehlib控件,功能很强,解决这个小问题就不在话下了!
      

  4.   

    var
       MaxWidth,Width,i : integer;
    begin  
     MaxWidth:=0;
     for i:=ComboBox1.Items.Count-1  to 0 do
     begin
        Width:=ComboBox1.Font.Size * Length(ComboBox1.Items[i]);
      if Width>MaxWidth then
         MaxWidth:=Width; //找出最大值
     end;
     ComboBox1.Text:=ComboBox1.Items[0];
     //发送消息以确定显示区域的宽度
    SendMessage(ComboBox1.Handle,CB_SETDROPPEDWIDTH,MaxWidth,0);
    end;
      

  5.   

    错了.改一下:
    for i:=ComboBox1.Items.Count-1  downto 0 do
      

  6.   

    同意  lzf1010(深宇) 。
      

  7.   

    我做数据库程序时遇到这种情况,,主要是下拉列的数据太大造成的,因为太大使一部分items显示出了屏幕能显示的范围,建意把下拉列的数目设置得小一点,,
      

  8.   

    uses Math;procedure TForm1.ComboBox1DropDown(Sender: TObject);
    var
      I: Integer;
      vMaxWidth: Integer;
    begin
      vMaxWidth := TComboBox(Sender).Width;
      for I := 0 to TComboBox(Sender).Items.Count - 1 do
        vMaxWidth := Max(vMaxWidth,
          TComboBox(Sender).Canvas.TextWidth(TComboBox(Sender).Items[I]) + 15);
      TComboBox(Sender).Perform(CB_SETDROPPEDWIDTH, vMaxWidth, 0);
    end;
      

  9.   

    hahafan(注意!此人前途迷茫)
    你的方法我已经调试成功,谢谢!laihecongxi(兴哥) 你的方法我马上试一下,不知道你们两个的方法谁的性能更好点啊?to: lzf1010(深宇) HINT属性我查过了帮助,发现是一个string型,怎么弄