我使用的是Delphi XE3。在表单中,我添加一个 TListView 并将其 ViewStyle 设置为 vsList。然后我尝试将一个带有长文本的项目添加到 ListView 中,如下所示:
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;
但是,添加的项目只会显示部分文本,如下所示:
如何解决这个问题?
最佳答案
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;
关于listview - 项目仅在 ListView 中显示部分文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53314914/