C #: TreeView Besitzer Zeichnung mit ownerdrawtext und die seltsame schwarze Hervorhebung beim Klicken auf einen Knoten

8

Ich habe den DrawMode auf OwnerDrawText gesetzt und an das DrawNode-Ereignis angeheftet, meinen Code hinzugefügt, um den Text so zu zeichnen, wie ich möchte, und alles funktioniert gut, abgesehen von einigen seltsamen schwarzen Hervorhebungen, wenn ein Knoten ausgewählt ist.

Kein Problem, ich habe Logik hinzugefügt, um zu prüfen, ob der Status des Knotens markiert wurde und meine eigene Hervorhebung gezeichnet hat, außer die schwarze Hervorhebung wird hinzugefügt, wenn auf einen Knoten geklickt wird, nicht nur ausgewählt ... Die Hervorhebung wird einmal von meinem Rechteck überstrichen die Maustaste ist losgelassen, aber wird gezogen und blinkt ... es ist nervig. : /

Anscheinend habe ich vergessen, meine Frage tatsächlich zu stellen ... Wie sollte man die Auswahl loswerden, ohne die Zeichnung vollständig zu handhaben?

    
Austin Hanson 16.06.2009, 19:18
quelle

1 Antwort

12

Nach meiner Erfahrung können Sie das normalerweise nicht. Entweder zeichnen Sie den Gegenstand selbst oder nicht. Wenn Sie versuchen, Ihre Grafiken über denen zu gruppieren, die von dem Steuerelement gezeichnet werden, werden Sie mit Glitches enden.

Es ist ein bisschen mühsam, weil Sie Fokusrechtecke, Auswahlhighlights und alle Glyphen selbst zeichnen müssen.

Auf der positiven Seite können Visual Styles verwendet werden, um die meiste Arbeit zu erledigen.

Hier ist ein Code, der Ihnen den größten Teil des Weges bringt (er ist unvollständig, da er einige nicht enthaltene Methoden verwendet und nicht genau das tut, was eine normale Baumansicht tut, weil er gefüllte Elemente und Spalten unterstützt, aber sollte eine praktische Referenz sein)

%Vor%     
Jason Williams 16.06.2009, 21:39
quelle

Tags und Links