使用TListView并且在应用程序中禁用主题时,焦点和选定项显示如下所示:

请注意,在两个图像中三角形所在的位置。项目的绘制框不会绘制在图标出现的位置。在TListBox中,绘制的项填充整个选定项。
我如何才能像填充文本部分一样,填充所选项目的图标部分?
我知道TListBox是这样呈现的,但我需要为Data属性使用TListView,而且TListView通过TImageList可以更好地处理图标。
谢谢。
发布于 2011-08-21 00:07:31
您需要使用TListView的OnCustomDraw事件。在事件处理程序中:
如果控件被聚焦,则确定项是否为selected
从图像列表绘制图像
有一些方法可以完成这些任务,比如DrawText和FillRect。
请注意,如果您愿意,您可以使用TListBox而不是TListView进行。您表示需要列表中的项的Data属性,我假设将它们绑定到实际的模型对象。您可以使用TStrings.Objects对任何支持TStrings的对象(如TListBox.Items)执行此操作。
https://stackoverflow.com/questions/7132781
复制相似问题