2010-11-20 33 views
5

Ich verwende das System.Windows.Forms.ListView Steuerelement auf .NET 2.0. Ich weiß, dass ich die OwnerDraw-Eigenschaft in der ListView auf true festlegen und dann OnDrawItem überschreiben kann, um meine ListViewItems benutzerdefiniert zu zeichnen. Ich kann auch OnDrawColumnHeader und OnDrawSubItem überschreiben, um diese Komponenten zu zeichnen.Ist es möglich, eine ListViewGroup zu erstellen

Es gibt jedoch keine äquivalente "OnDrawGroup" -Methode, die überschrieben werden muss, wenn ich meine ListViewGroups benutzerdefiniert zeichnen möchte.

Ich warf einen kurzen Blick auf die Nachrichten, die dieses Steuerelement verwendet, und ich sehe, gibt es WM_CUSTOMDRAW und CDDS_ITEMPREPAINT Benachrichtigungen, aber ich frage mich, gibt es eine Möglichkeit, wenn ich diese nativen Nachrichten zum benutzerdefinierten Zeichnen meiner ListViewGroups?

Antwort

2

Ich glaube nicht, dass dies mit dem eingebauten Mechanismus möglich ist. Ich denke, du musst alles selbst zeichnen.

2

Es kann einfach nicht gemacht werden.

Sie können es nicht tun, indem Sie alles selbst zeichnen, oder indem Sie herunterfallen, um WM_CUSTOMDRAW oder sogar mit Hilfe der undocumented ListView interfaces und used here zu behandeln.

Diese Diskussion ist mehrmals aufgetreten (here for example). Gruppenköpfe in einem ListView sind seltsame Bestien. In XP könntest du höchstens ihre Farbe einstellen (nicht einmal ihre Schriftart), aber seit Vista gibt es absolut nichts, was du ihnen antun kannst.

Verwandte Themen