listview - 项目仅在 ListView 中显示部分文本

标签 listview delphi

我使用的是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;

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

enter image description here

如何解决这个问题?

最佳答案

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/

相关文章:

android - 如何在 ListView 的末尾添加空格?

带复选框的 Android ListView : automatically unchecks

delphi - 将delphi过程作为方法调用

delphi - 如何在 Delphi 中使用动画 PNG?

delphi - TIdHTTPServer 文件上传

android - ListView 搜索

java - ListView setAdapter 对空对象引用

c# - 控件布局模板

delphi - OpenGL与Delphi : Offscreen Rendering of an Image to File

arrays - Delphi过程数组参数混淆