Delphi的TListBox組件會自動添加一
個垂直滾動條,即當列表框的高度容納不下所有的列表條目時,垂直滾動條就自動顯示。但是,當條目的寬度大于列表框的寬度時,水平滾動條不會自動顯示。當然, 可以在列表框中加如水平滾動條,方法是在窗體的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;
這段代碼先查找列表框中最長的條目的寬度(以象素點表示),然后,
用LB_SETHORIZONTALEXTENT消息來設置列表框的水平滾動條的寬度(以象素點表示),外
加兩個額外的象素。
(出處:http://www2.delphifans.com/blog
/more.asp?name=caixiaoming&id=392)
posted on 2010-05-19 11:45
Ke 閱讀(376)
評論(0) 編輯 收藏 所屬分類:
delphi