Laden...

TreeView leider nicht Case Sensitive

Erstellt von cookie1991 vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.133 Views
C
cookie1991 Themenstarter:in
7 Beiträge seit 2007
vor 16 Jahren
TreeView leider nicht Case Sensitive

Hallo ich benutze in meiner Anwendung ein TreeView Control um eine Ebenenstruktur darzustellen. Diese Struktur wird aus einer Datenbank ausgelesen.

Es gibt:

Ebene1
----------- Ebene 2
------------------------ Name

Das funktioniert auch alles wunderbar. Das einzige Problem ist das das TreeView Control NICHT Case-Sensitive ist. D.h. Wenn ich mit


treeview1.Nodes[Ebene1].Nodes[Ebene2]

darauf zugreife achtet er mir nicht auf die Groß- Kleinschreibung.
Ich habe auch schon bei msdn etc. nachgeschaut und es ist NICHT Case - Sensitive.

Jetzt zur eigentlichen Frage:
Kennt jemand vielleicht eine Ableitung von TreeView die Case Sensitive ist?
oder gibt es eine Möglichkeit das TreeView "Case Sensitive zu machen" vielleicht indem man es geschickt ableitet (wovon ich noch nicht so sonderlich viel Ahnung habe) oder ähnliches?

Vielen dank für eure Hilfe
mfg cookie

2.760 Beiträge seit 2006
vor 16 Jahren

Du kannst im einfachsten Fall das TreeView ableiten und dir zwei Methoden dazuhängen, z.B.: GetNode(string path) und evtl. SetNode(string path) dann musst du die Nodes halt selber verwalten.
Alternativ könntest du das "Nodes"-Property mit "new" überschreiben, dann hättest du das gleiche Handling müsstest dich aber ebenfalls um die Verwaltung der Nodes selber kümmern.
Schau dir noch die "Path"-Eigenschaft an evtl. hilf die dir ja weiter.
Unter Windows ist eigentlich alles case-insensitive.

C
cookie1991 Themenstarter:in
7 Beiträge seit 2007
vor 16 Jahren

Okay vielen dank. Ich habe es jetzt mit eigenen Methoden gelöst :


private System.Windows.Forms.TreeNode GetNode(String SearchString, System.Windows.Forms.TreeNodeCollection Collection)
        {
            if (Collection != null)
            {
                foreach (System.Windows.Forms.TreeNode Node in Collection)
                {
                    if (Node.Text.Equals(SearchString))
                        return Node;
                }
            }

            return null;
        }

2.760 Beiträge seit 2006
vor 16 Jahren

Du solltest deine Method evtl. noch rekursiv machen da du sonst immer nur die oberste Ebene mit deiner Suche abdeckst.

Siehe z.B.:
TreeView durchsuchen

C
cookie1991 Themenstarter:in
7 Beiträge seit 2007
vor 16 Jahren

Hmm in meinem speziellem Fall muss ich das garnicht aber ich könnte es trotzdem noch mit einbauen 😉

Danke für die Hilfe

*zu* ?