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
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.
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;
}
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
Hmm in meinem speziellem Fall muss ich das garnicht aber ich könnte es trotzdem noch mit einbauen 😉
Danke für die Hilfe
*zu* ?