Delphi的TListBox組件會自動添加一
個垂直滾動條,即當(dāng)列表框的高度容納不下所有的列表?xiàng)l目時,垂直滾動條就自動顯示。但是,當(dāng)條目的寬度大于列表框的寬度時,水平滾動條不會自動顯示。當(dāng)然, 可以在列表框中加如水平滾動條,方法是在窗體的OnCreate事件處理程序中加入如下代碼:
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
MaxWidth := ListBox1.Canvas.TextWidth(ListBox1.Items.Strings[i]);
SendMessage(ListBox1.Handle, LB_SETHORIZONTALEXTENT, MaxWidth+2, 0);
end;
這段代碼先查找列表框中最長的條目的寬度(以象素點(diǎn)表示),然后, 用LB_SETHORIZONTALEXTENT消息來設(shè)置列表框的水平滾動條的寬度(以象素點(diǎn)表示),外 加兩個額外的象素。(出處:http://www2.delphifans.com/blog /more.asp?name=caixiaoming&id=392)