项目仅在列表视图中显示部分文本

时间:2018-11-15 08:09:21

标签: listview delphi

我正在使用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;

但是,添加的项目将仅显示部分文本,如下所示:

enter image description here

如何解决问题?

2 个答案:

答案 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);