Vererbung ?

Speedkill

Erfahrenes Mitglied
Hallo Leute,

ich hoffe ihr könnt mir helfen.
Ich kapiere irgendwie die Vererbung bei VB.NET ned ( brüll was für ein Lacher ).

Also Spaß beiseite, ich komme einfach nicht weiter.
Die Situation ist folgende:

Ich habe ein TreeView in welches bekanntermaßen TreeNodes eingefügt werden können.
Nun möchte ich den TreeNode so erweitern daß er mir als zusätzliche Eigenschaft einen XML-Node speichern kann.
Also neue Klasse:

Code:
Public Class refTreeNode

Inherits System.Windows.Forms.TreeNode

Public xnode As Xml.XmlNode

End Class

und schon habe ich einen TreeNode mit XML-Knoten-Speicher.

Nun habe ich aber das Problem daß ich diesen Knoten nicht in den TreeView hineinbekomme, da der TreeView nur TreeNode und nicht mein refTreeNode akzeptiert.
Was kann ich da tun?
Ich habe mir schon gedacht man könnte einfach auch ein neues TreeView machen welches refTreeNodes akzeptiert, aber dazu müsste ich die add-Methode des TreeView überschreiben und ich habe keine Ahnung wie der Code dieser Methode aussieht.
Im MSDN ist nix beschrieben dazu und ohne den Code zu kennen kann ich ihn schlecht überschreiben.

Hat jemand ne Lösung für mein Problem oder kann mir sagen was ich falsch mache ?
Ich habe so langsam das Gefühl die ganze Sache falsch anzugehen!

Danke schonmal
Speedkill
 
Hi,

ich sehe da gar kein Problem. Der TreeView Klasse kannst du über TreeView.Nodes.Add
einen neuen Knoten zuordnen. Dieser Knoten muss vom Typ TreeNode sein. Das bedeutet,
dass auch Derivate der TreeNode Klasse erlaubt sind. Wenn du dann später natürlich
auf die Werte deiner neuen TreeNode Klasse zugreifen willst, dann musst du die zurückgegebenen
TreeNode Objekte nur entsprechend casten.

Beispielcode: (Achtung C# ;-))
Code:
public class refTreeNode : System.Windows.Forms.TreeNode
{
	public Xml.XmlNode xnode;
}

refTreeNode refNode = new refTreeNode();
treeView1.Nodes.Add(refNode);

// Wert aus der TreeView abrufen und entsprechend casten (konvertieren)
refTreeNode rootNode = (refTreeNode)treeView1.Nodes[0];
 
Super !
Danke tausendmal ....

Wieso hab ich es mir so schwer gemacht ?

Mannoman, wenn man den Wald vor lauter Bäumen nicht mehr sieht ;)

Das geht ja wunderbar, ich weiß auch nicht was mich da geritten hat.
Wahrscheinlich lag es zusätzlich an der Schwierigkeit der Rekursion in der das ganze stattfindet, aber nun geht es.

Tausend Dank nochmal.

Grüße
Speedy
 
Zurück