Avatar billede jan_l Nybegynder
10. marts 2004 - 00:59 Der er 8 kommentarer og
2 løsninger

Treeview: Kan ikke få det til at virke

Hej

Jeg har nedenstående kode i "Module1.bas" og jeg har et treeview
placeret på en form der hedder frmMain.
Jeg får denne fejlmeddelelse når jeg prøver at køre programmet:

Run-Time error 35602: Key is not unique in collection.

Hva' dælen gør jeg forkert ????


Sub PopulateTreeView()
    Dim nd As Node
   
' Configure TreeView
With frmMain.tvTreeView
    .Nodes.Add , , "root", "Transportmidler"
    .Nodes.Add "root", tvwChild, "X1", "Bil"
    .Nodes.Add "X1", tvwChild, "X2", "Gear"
    .Nodes.Add "X1", tvwChild, "X3", "Hjul"
    .Nodes.Add "root", tvwChild, "X4", "Hest"
    .Nodes.Add "X4", tvwChild, "X5", "Hoved"
    .Nodes.Add "X4", tvwChild, "X6", "Hale"
    .Nodes.Add "X4", tvwChild, "X7", "Tænder"
   
    For Each nd In .Nodes
        nd.Expanded = True
    Next
   
End With
End Sub
Avatar billede helmet Nybegynder
10. marts 2004 - 08:58 #1
Ja den kode du viser der er der da ikke noget galt med, du er sikker på at du ikke kalder metoden 2 gange, for så vil du få fejlen??
Avatar billede terry Ekspert
10. marts 2004 - 17:49 #2
the first paramater to the .add method is the key value which MUST be unique! I can see 2 with X1 and 3 with X4 so they are NOT unique!
Avatar billede jan_l Nybegynder
10. marts 2004 - 19:58 #3
Helmet:
Det er muligt... Jeg vil prøve at kontrollere..

Terry:
I henhold til hjælpen, så ser det sådan her ud:
" object.Add(relative, relationship, key, text, image, selectedimage) "

Det vil sige at det er det tredje argument der er key...
Avatar billede terry Ekspert
10. marts 2004 - 21:57 #4
sorry jan_l you right there, dont know what I was thinking.
I've tried your example here and it works fine. Try calling PopulateTreeView in the forms on load event if there is suchan event in VB (I'm using Access)
Avatar billede helmet Nybegynder
11. marts 2004 - 09:08 #5
Du kan evt. indsætte en .Nodes.Clear inden du begynder og sætte noget ind, så er du i hvert fald sikker på at treeviewet er tomt inden du begynder, det kan være med til og give en indikation om det er der fejlen opstår.
Avatar billede jan_l Nybegynder
12. marts 2004 - 17:43 #6
Hej

Jeg har ikke glemt jer, men jeg har desværre haft ret travlt med nogle andre ting.  jeg skal nok vende tilbage lige så snart jeg har fået kigget på det...
Forhåbentlig i løbet af weekenden.

God weekend..
Avatar billede jan_l Nybegynder
15. marts 2004 - 23:37 #7
Hejsa

Så har jeg fået kigget på det.... Det lader til at der var flere ting galt.

For det første så hjalp det at jeg anvendte .Nodes.Clear, men først da jeg havde flyttet koden over i frmMain, istedet for i Module1.Bas.
Grunden til at .Nodes.Clear hjalp var ganske rigtigt at der opstod en fejl i en af mine sub's således at metoden blev kaldt to gange.

Så med udgangspunkt i det, så lader det til at I begge havde ret  :-)
Jeg kan dog ikke forstå, hvorfor jeg ikke kan køre koden fra module1.bas, når
jeg nu lige så pænt kalder treeviewet med frmMain.tvTreeview..... ????

Helmet:
Jeg vil også gerne give dig nogle point for dette, men du har ikke lavet svar, men kommentarer. Hvis du gerne vil have point for det, så kan jeg godt lave en point-topic..

Mvh.
      jan_l
Avatar billede helmet Nybegynder
16. marts 2004 - 07:19 #8
Jeg kan bare smide et her så kan du dele dem mellem os efter behag.
Avatar billede jan_l Nybegynder
17. marts 2004 - 07:26 #9
Har nogle af jer en idé om, hvorfor jeg ikke kunne køre koden fra "module1.bas" ???

Det ville jeg stadig foretrække, men hvis det ikke kan lade sig gøre, sååååå....
Avatar billede helmet Nybegynder
17. marts 2004 - 10:19 #10
Næh ingen foreslag, kan ikke se hvorfor det ikke skulle virke.
Har selv afprøvet det fra et module, og det virkede fint.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester