我正在使用Delphi XE3。在一个表单中,我添加一个TListView并将其ViewStyle设置为vsList。然后,我尝试将一个长文本项添加到列表视图中,如下所示:
procedure TForm1.Button1Click(Sender: TObject);
var
ListItem: TListItem;
begin
ListItem := ListView1.Items.Add;
ListItem.Caption := 'A very very long text long text long text long text long text';
end;
但是,添加的项目将仅显示部分文本,如下所示:
如何解决问题?
答案 0 :(得分:3)
BeginUpdate/EndUpdate
重新计算列宽(但是为什么在添加过程中不这样做?)并调用WM_SETREDRAW
(也许添加仅重绘具有“旧”项目大小的矩形)
var
ListItem: TListItem;
begin
ListView1.Items.BeginUpdate;
try
ListItem := ListView1.Items.Add;
ListItem.Caption := 'A very very long text long text long text long text long text';
finally
ListView1.Items.EndUpdate;
end;
end;
答案 1 :(得分:0)
ListView_SetIconSpacing更改图标/项目的大小:
uses commctrl;
[...]
ListView_SetIconSpacing(ListView1.Handle, ListView1.Width, 25);