probleme beim füllen des TreeView objektes



  • void renametool::Form1::bAddFolders_Click(System::Object *  sender, System::EventArgs *  e){
    	if(folderBrowserDialog1->ShowDialog()==DialogResult::OK){
    		this->tvFolders->BeginUpdate();
    		String *folderName=folderBrowserDialog1->SelectedPath;
    		this->tvFolders->Nodes->Add(folderName);
    		if(this->cbTiefensuche->Checked){
                this->r_addSubNodes(new TreeNode(folderName));	
    		}
    		this->tvFolders->EndUpdate();
    	}
    }
    
    void renametool::Form1::r_addSubNodes(TreeNode * node){
    	String *directorys[]=System::IO::Directory::GetDirectories(node->Text);
    	if(directorys->Count>0){
    		Collections::IEnumerator* myFirstEnum=directorys->GetEnumerator();
    		while(myFirstEnum->MoveNext()){
    			String *directory=myFirstEnum->Current->ToString();
    			node->Nodes->Add(directory);
    			r_addSubNodes(new TreeNode(directory));
    		}
    	}
    }
    

    moin also das problem ist folgendes, das solleigentlich allle unterordner eines gewählten ordners in das treeview objekt eintragen. aber alle knoten die ich mit der funktion renametool::Form1::r_addSubNodes(TreeNode * node) am ende nicht sichtbar obwohl sie doch eigentlich an den ersten angehängt werden müssten wenn ich das richtig verstehe ...

    MfG Kasimir



  • ok that sich erledigt für die die es interessiert das problem war das ich immer einen pointer auf einen neuen knoten übergeben hab und nicht den pointer auf das knoten item das ich gerade erstellt hatte:

    korrekt ist es also so:

    void renametool::Form1::bAddFolders_Click(System::Object *  sender, System::EventArgs *  e){
    	if(folderBrowserDialog1->ShowDialog()==DialogResult::OK){
    		this->tvFolders->BeginUpdate();
    		String *folderName=folderBrowserDialog1->SelectedPath;
    		this->tvFolders->Nodes->Add(folderName);
    		int count=0;
    		if(this->cbTiefensuche->Checked){
    			this->r_addSubNodes(this->tvFolders->Nodes->Item[count]);	
    		}
    		this->tvFolders->EndUpdate();
    	}
    }
    
    void renametool::Form1::r_addSubNodes(TreeNode * node){
    	String *directorys[]=System::IO::Directory::GetDirectories(node->Text);
    	if(directorys->Count>0){
    		int i=0;
    		Collections::IEnumerator* myFirstEnum=directorys->GetEnumerator();
    		while(myFirstEnum->MoveNext()){
    			String *directory=myFirstEnum->Current->ToString();
    			node->Nodes->Add(directory);
    			r_addSubNodes(node->Nodes->Item[i]);
    			i++;
    		}
    	}
    }
    

Anmelden zum Antworten