请问如何判断listbox里的ScrollBar是否已经显示!

解决方案 »

  1.   

    你可以循环判断LISTBOX内容的最在长度,然后用LISTBOX的SCROLLWITH与最大长度进行一判断
    就可以了你试试看看行不?
      

  2.   


    1.当listbox1.Items.Count * listbox1.ItemHeight > listbox1.Height时,
      listbox会自动显示垂直滚动条,否则不显示.
      可以根据这个判断垂直滚动条是否显示.2.listbox的水平滚动条不会自动加载,即使当item的内容超过显示范围,也不会自动加载水平滚动条.解决方法如下://根据item内容的长度自动加载listbox的水平滚动条
    //在FormCreate中处理
    procedure TForm1.FormCreate(Sender: TObject);
    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
        begin
           maxwidth:=listbox1.Canvas.TextWidth(listbox1.Items.Strings[i]);
        end;
         sendmessage(listbox1.Handle,lb_sethorizontalextent,maxwidth+2,0)
    end;