我在TListView
模式下有vsSmallIcon
。如果我用2个项目填充它,并且第一个项目文本比第二个项目文本长,它将在第二个项目上绘制第一个项目。
是否有快速方法用省略号替换较长的项目?还是一个复杂的?
我正在使用Delphi 2010和C ++ Builder 2010,默认设置为TListView
外观如何:
我希望它看起来如何:
编辑:在尝试vsList
样式后,我发现上述内容已不再是问题,并且无需任何其他代码即可运行(没有省略号,但也没有裁剪项目)。
答案 0 :(得分:1)
使用TListView
时,我经常发现自己在调查和模仿Windows资源管理器的行为。
关于vsSmallIcon
模式下省略号的问题,我检查了资源管理器。我观察到,当我调整窗口大小时,没有为项目标题绘制省略号。相反,这些项目会立即重新排列。我的建议是跳过省略号策略,因为微软没有以这种方式实现资源管理器,并且快速修复的可能性会降低。如果您能够安排重新安排,那么以下两个“快速”替代方案应该可以胜任,至少在XE3中是这样。
替代1:
ListView1.IconOptions.AutoArrange := true;
替补2:(每次要重新排列时都必须明确调用):
ListView1.Arrange(arDefault);
<强>更新强>
我启动了Delphi 2006并且可以确认上述方法也适用于那里