避免TListView项目剪切和用省略号替换的简单方法

时间:2014-09-09 22:15:12

标签: delphi listview delphi-2010

我在TListView模式下有vsSmallIcon。如果我用2个项目填充它,并且第一个项目文本比第二个项目文本长,它将在第二个项目上绘制第一个项目。

是否有快速方法用省略号替换较长的项目?还是一个复杂的?

我正在使用Delphi 2010和C ++ Builder 2010,默认设置为TListView

外观如何:

How it looks

我希望它看起来如何:

How I want it to look

编辑:在尝试vsList样式后,我发现上述内容已不再是问题,并且无需任何其他代码即可运行(没有省略号,但也没有裁剪项目)。

1 个答案:

答案 0 :(得分:1)

使用TListView时,我经常发现自己在调查和模仿Windows资源管理器的行为。 关于vsSmallIcon模式下省略号的问题,我检查了资源管理器。我观察到,当我调整窗口大小时,没有为项目标题绘制省略号。相反,这些项目会立即重新排列。我的建议是跳过省略号策略,因为微软没有以这种方式实现资源管理器,并且快速修复的可能性会降低。如果您能够安排重新安排,那么以下两个“快速”替代方案应该可以胜任,至少在XE3中是这样。

替代1:

ListView1.IconOptions.AutoArrange := true;

替补2:(每次要重新排列时都必须明确调用):

ListView1.Arrange(arDefault);

<强>更新

我启动了Delphi 2006并且可以确认上述方法也适用于那里