我在.NET 2.0上使用System.Windows.Forms.ListView控件。我知道我可以将ListView上的OwnerDraw属性设置为true,然后重写OnDrawItem以自定义绘制我的ListViewItems。我还可以覆盖OnDrawColumnHeader和OnDrawSubItem来绘制这些组件。
但是,如果我想自定义绘制ListViewGroups,则没有等效的“OnDrawGroup”方法。
我简要介绍了这个控件使用的消息,我看到有WM_CUSTOMDRAW和CDDS_ITEMPREPAINT通知,但是我想知道如果我处理这些本机消息以自定义绘制我的ListViewGroups有什么方法吗?
答案 0 :(得分:2)
我不相信使用内置机制是可行的。我想你必须自己画一切。
答案 1 :(得分:2)
它无法完成。
您无法通过自己绘制所有内容,或通过下拉处理WM_CUSTOMDRAW
甚至使用undocumented ListView interfaces和used here来完成此操作。
这次讨论多次出现(here for example)。 ListView
中的群组标头是奇怪的野兽。在XP中,你最多可以设置它们的颜色(甚至不是它们的字体),但是从Vista开始,你无法对它们做任何事情。