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 阅读(349)
评论(0) 编辑 收藏 所属分类:
delphi