我正在学习制作虚拟模式listview。到目前为止,我的问题是我无法使用listview中的复选框。我已经阅读了http://delphi-kb.blogspot.com/2011/02/draw-checkboxes-in-virtual-mode.html的链接,但我没有看到任何复选框。有什么想法吗?
答案 0 :(得分:2)
显然,您必须在启用OwnerData
时自行绘制CheckBox(如问题中链接的文章中所述)。
所以你必须将OwnerDraw
设置为True
(除了OwnerData
,这两个是独立标志!)并自己绘制CheckBoxes OnCustomDrawItem
事件。
更新:
似乎这并非完全正确,OnCustomDrawItem
事件也会在案件OwnerDraw = False
中被触发。
http://docwiki.embarcadero.com/VCL/XE2/en/ComCtrls.TListView.OnCustomDrawItem
更新2:
问题中关联的代码仅在OwnerDraw = False
和CheckBoxes = True
时有效。
否则VCL不会在左侧预留空间来绘制CheckBoxes。
顺便说一句:你最好使用更高级的组件,比如Mike Lischke的TVirtualTreeView。