PDA

Vollständige Version anzeigen : Treeview Steuerelement an Function übergeben


martin_F2000
22.03.2006, 12:55
Hallo ihrs,

eigentlich kann ich doch Referenzen auf Steuerelementen an eine Function übergeben. Wenn ich dass aber mit meinem Treeview-Objekt mache, klappt das nicht. Woran scheitert das?

Public Function pfctShowNodeInTreeView(ByRef trvProjects As TreeView, strParent As String, strProjectNo As String) As Boolean

Und dann hab ich noch eine Frage:
Ich kann ja alle Kind-Knoten durchlaufen und eine Function rekursiv aufrufen lassen, bis ich ganz "unten" bin. Wie aber fange ich bei den obersten an?

So funktioniert das ja auch...
Form_frmProjectExplorer.trvProjects.Nodes(strParent)
Aber es gibt in der obersten Hierarchie eben mehr als einen Eltern-Knoten
Und das funkioniert dann nicht mehr...
Form_frmProjectExplorer.trvProjects.Nodes()

Danke
Martin

Beere
22.03.2006, 14:26
Bei der Funktion muß das Node/TreeView als Object deklariert sein. Und für die andere Sache gibts FirstSibling, LastSibling, Next und Previous.

Schau mal bei Donkarl nach, da gibts ein AEK zu Treeview und dort ist alles schön erläutert.

mfg
Beere

Karlheinz
22.03.2006, 14:43
oder die Count Eigenschaft vom Node-Objekt nutzen.

z. Bsp
Dim i As Integer
Dim strNodes As String
For i = 1 To Me!TreeView.Nodes.Count
strNodes = strNodes & Me!TreeView.Nodes(i).Index & " " & _
"Schlüssel: " & Me!TreeView.Nodes(i).Key & " " & _
"Text: " & Me!TreeView.Nodes(i).Text & Chr(10)
Next i
MsgBox strNodes


Der Index beginnt hier mit 1!!

Gruß Karlheinz

martin_F2000
22.03.2006, 15:20
@Beere: Es ist doch aber als Treeview deklariert!
...ByRef trvProjects as Treeview, ... Funzt aber dennoch nicht.

@all: Das andere Problem ließ sich viel leichter lösen:

dim oNode as Node

For each oNode in trvProjects.nodes
...
next

Und schon geht er alle nur erdenklichen Knoten durch :-)

VG Martin

Nouba
22.03.2006, 15:38
Ein ActiveX-Steuerelement wird in Access über die Object-Eigenschaft zur Verfügung gestellt.

Dim tv As TreeView

Set tv = Me!TreeViewControlnameImFormular.Object

' ...und dann
Call pfctShowNodeInTreeView(tv, "Was weiß ich", "???")
' ... oder
Call pfctShowNodeInTreeView(Me!TreeViewControlnameImFormular.Object, "Was weiß ich", "???")

martin_F2000
23.03.2006, 06:55
@Nouba: Vielen herzlichen Dank! Jetzt macht es das, was es soll. Wie herrlich :-)