字符串;12345678910111213141511617181920212223241213132 ,还是显示不全?
有办法吗?
procedure TForm1.FormCreate(Sender: TObject);
var
  i, MaxWidth: integer;
begin
  MaxWidth := 0;
  for i := 0 to Mod_LBx.Items.Count - 1 do
  if MaxWidth < Mod_LBx.Canvas.TextWidth(Mod_LBx.Items.Strings[i]) then MaxWidth := Mod_LBx.Canvas.TextWidth(Mod_LBx.Items.Strings[i]);
    SendMessage(Mod_LBx.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+2, 0);
end;

解决方案 »

  1.   

    转贴:http://expert.csdn.net/Expert/topic/2890/2890976.xml?temp=.859234回复人: postren(小虫) ( ) 信誉:105  2004-3-26 18:50:26  得分:0 
     
     
      
    给你一个文本大于ListBox的宽度时,自动显示滚动条的例子
    var 
      i, MaxWidth: integer; 
    begin 
      MaxWidth := 0; 
      for i := 0 to ListBox1.Items.Count - 1 do 
      if MaxWidth < ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i]) then 
        MaxWidth := ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i]); 
      SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+2, 0); 
    end;小虫,进来!转了你的代码。
    楼主结贴时我不要分
     
      

  2.   

    我这儿可以的, 可能与你字体设置有关, 可以适当的把 MaxWidth+2中的2适当放大看看