jeg har et system hvor jeg vælger et directory og alle undermapper bliver derefter vist i et TreeView! Jeg vil så have at når jeg sætter hak i checkbox ud for mapper og trykker på en knap så skal directory lsites op i et andet treeview!
Du bliver nødt til at iterere alle dine noder. Hvis en node er Checked så skal den klones til en ny node og indsættes i tv2. En træ node kan nemlig kun "leve" i ét træ af gangen.
TreeNode newNode = (TreeNode)node.Clone();
Du bliver ogsånødt til at tage stilling til hvad der skal ske hvis en child af en checked parent eksisterer.
Men jeg har lige et til! Lad os sige at jeg gør det samme.. krydser af og trykker på en knap.. når jeg trykker på den knap skal den så gå ned i en listBox og skrive de Directory's som jeg har krydset af... Hvordan gør man det? (er forholdsvis ny i dette sprog)
Hvis nu jeg kun har 1 TreeView og 1 listBox (ikke listView)... hvordan gør jeg så.. for det her kan jeg ikke få til at fungere optimalt!.. og nu når jeg trykker på knappen bliver den ført over og omdøbt til "Selected Nodes".. Den skal hedde det samme som directory'et..! f.eks C:\Programmer\Adobe..... osvosv.. de skal skrives på lister alle de Dir's man vælger!
Hvorledes stien skrives afhænger af følgende linie:
value = string.IsNullOrEmpty(value) ? tempNode.Text : string.Format("{0}.{1}", tempNode.Text, value);
Du skal med andre ord rette punktummet i teksten "{0}.{1}" til dit ønskede tegn.
Husk min kode er et generelt eksempel som ikke kender til din specifikke løsning.
Og Ja min løsning er begrænset til de omtalte levels. Hvis du ønsker at det skal ske for samtlige noder, må du derfor iterere alle dine childs og sub-childs.
private void AddCheckedItems(TreeNodeCollection nodes) { if (nodes != null) { foreach (TreeNode node in nodes) { if (node.Checked) { this.listBox.Items.Add(node.FullPath); }
this.AddCheckedItems(node.Nodes); } } }
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.