我正在学习制作虚拟模式列表视图。到目前为止,我的问题是我不能在列表视图中使用复选框。我已经阅读了来自http://delphi-kb.blogspot.com/2011/02/draw-checkboxes-in-virtual-mode.html的链接,但我没有看到任何复选框。任何想法?
问问题
2305 次
1 回答
2
显然,您必须在启用时自己绘制复选框OwnerData
(如问题中链接的文章中所述)。
所以你必须设置OwnerDraw
为True
(除了OwnerData
,这两个是独立OnCustomDrawItem
的标志!)并在事件中自己绘制 CheckBoxes 。
更新:
看来这并不完全正确,OnCustomDrawItem
事件也是在 case 中触发的OwnerDraw = False
。
http://docwiki.embarcadero.com/VCL/XE2/en/ComCtrls.TListView.OnCustomDrawItem
更新 2:
问题中链接的代码仅在OwnerDraw = False
和时有效CheckBoxes = True
。
否则 VCL 不会在左侧保留空间来绘制 CheckBox。
顺便说一句:您最好使用更高级的组件,例如 Mike Lischke 的 TVirtualTreeView。
于 2011-10-26T09:49:05.017 回答