Treeview dynamisch aufbauen

paebels

Erfahrenes Mitglied
Hallo

ich versuche eine Treeview funktion zu schreiben die mir die Verzeichnisse z,B c: ausgibt
Hier mein Code.
Code:
void CVerzeichnisse::knoten_erstellen(System::Windows::Forms::TreeView^ treeView1,System::String^ wurzel )
{
	try
	{
		System::Windows::Forms::TreeNode^ root = gcnew System::Windows::Forms::TreeNode(wurzel);
		//treeView1->Nodes->Clear();
		treeView1->Nodes->Add(root);
		int zaehler = 0;
		zaehler = System::IO::Directory::GetDirectories(wurzel)->Length;
		if(zaehler !=0)
		{
			for(int i = 0 ; i < zaehler; i++)
			{
				System::Windows::Forms::TreeNode^ child = gcnew System::Windows::Forms::TreeNode;
				child->Text = System::IO::Directory::GetDirectories(wurzel)[i]->ToString();
				root->Nodes->Add(child);
				root->ImageIndex = 1;
			}
			root->ExpandAll();
		}
	}
	catch(System::UnauthorizedAccessException^ e)
	{
		//MessageBox::Show(e->Message);
		treeView1->Nodes->Clear();
	}
}
Irgendwo ist ein Gedankenfehler mit treeView1->Nodes->Clear(); bekomme ich immer einen Oberknoten und die darunter. Problem ich komme schlecht zurück ohne den Clear Aufruf add ich mir immer selber den Aufgerufnen Node zur Gesamtansicht was ich naürlich auch nicht will. Wie bekomme ich das in dne Griff?
MfG

oli
 
OK versuche es nochmal. Meine Treeview Methode die ich oben gepostet habe liest nur eine Unterebene aus. Heisst wenn ich in die nächste Ebene gehen will ru ich die Funktion auf. Soweit so gut. Will ich nun von der z.B 5 Ebene zurück komme ich nur 2 zurück ,da ich den vorgänger nicht wegspeichere. Nun wollte ich alles Rekursive machen aber das klappt auch nicht.
Rekursive um eben die komplette Treeview zu füllen mit den Info´s von z.B c:\
MFG
Oli

p.s glaube das ist was ich suche.werde es morgen mal testen
http://msdn.microsoft.com/de-de/library/774ty506.aspx
 
Zuletzt bearbeitet:
Hm danke , leider verstehe ich das Beispiel dort nicht. Ich habe auch keien foreach in c++ leider.
Ich müßte doch nur dei funktion in sich selber wieder aufrufen sobald ein Node Unterverzeichnisse hat.
Man das kann doch nicht so schwierig sein.Langsam glaube ich ich bin zu dämlich
Meine Funktion macht es j avom Prinzip , nur kann ich mit ihr die Nodes nicht am Plus öffnen da Sie mir durch einen Fehler dann den ganzen ausgewählten TRee an Hängt als Top Node.
Hier im Bild sieht man was ich meine. Ich habe nach der Auswahl zuviele Top Nodes

MFG
Oli
 

Anhänge

  • Neue Bitmap.jpg
    Neue Bitmap.jpg
    12,1 KB · Aufrufe: 9
SO habe es mit der Rekursion doch gelassen. Habe einen Weg gefunden vor und zurück zu Navigieren mit meiner alten Funktion
Thx @all

Oli
 
Zurück