2009-08-07 14 views

Antwort

3

Verwenden StateImageList und TreeNode.StateImageIndex aus der Box zu bekommen. Sie müssen auch das MouseDown-Ereignis abonnieren und den Prüfstatus (Statusbild) ändern, wenn der Benutzer auf das Statusbild klickt. Mit diesem Ansatz können Sie beispielsweise auch Kontrollkästchen für drei Zustände emulieren.

Eigentlich interne TreeView-Implementierung verwendet tatsächlich die gleiche Methode, aber das ist von Ihnen verborgen.

Verfahren zum für Abbildungsliste auf CheckBoxState basierend Bild zu erstellen:

private Image CreateCheckBoxGlyph(CheckBoxState state) 
{ 
    Bitmap Result = new Bitmap(imlCheck.ImageSize.Width, imlCheck.ImageSize.Height); 
    using (Graphics g = Graphics.FromImage(Result)) 
    { 
     Size GlyphSize = CheckBoxRenderer.GetGlyphSize(g, state); 
     CheckBoxRenderer.DrawCheckBox(g, 
      new Point((Result.Width - GlyphSize.Width)/2, (Result.Height - GlyphSize.Height)/2), state); 
    } 
    return Result; 
} 
0

Ich habe TreeView aufgegeben, weil es begrenzt und fehlerhaft ist.

sollten Sie in der Lage sein, dieses Verhalten mit dem Open-Source für solche Zwecke TreeViewAdv

+2

Welche Fehler haben Sie stoßen in TreeView? –

+0

Eigentlich native TreeView ist sehr mächtig, aber Sie müssen viele Prüfungen haben, weil TreeView evolutes und erhält neue Funktionen mit jeder neuen Windows-Version. .Net-Strukturansichtswrapper verwendet nicht das gesamte TreeView-Potenzial, und für viele erweiterte Features müssen Sie Unterklassen erstellen. – arbiter

+0

Es ist eine Weile her, aber ein Fehler, an den ich mich erinnere, sind Ereignisse, die unter bestimmten Umständen nicht ausgelöst werden. –

Verwandte Themen