3

我正在学习制作虚拟模式列表视图。到目前为止,我的问题是我不能在列表视图中使用复选框。我已经阅读了来自http://delphi-kb.blogspot.com/2011/02/draw-checkboxes-in-virtual-mode.html的链接,但我没有看到任何复选框。任何想法?

4

1 回答 1

2

显然,您必须在启用时自己绘制复选框OwnerData(如问题中链接的文章中所述)。

所以你必须设置OwnerDrawTrue(除了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 回答