Rekursive Bestimmung Parents von ControlObjekten

Hallo zusammen,

ich habe folgendes Problem.

In einem Formular existiert ein Objekt mit Child-Objekten.
Das Objekt ist vom Typ Control.
Wenn ich jetzt eines dieser Objekte auswähle kann ich über

ControlObjekt.Parent --> Vater

das Parent-Objekt identifizieren.Das ist anscheinend beliebig fortführbar:

ControlObjekt.Parent.Parent.Parent --> UrOpa usw.

  1. Man weiss nie wieviele Parents es gibt

  2. Selbst wenn, wäre doch eine rekursive Funktion recht komfortabel
    –> Die Abbruchbedingung muss abhängig von der Existenz des Parent-Objektes sein.

  3. Welche Typen müssten dann die Übergabe-Variablen der rekursiven Funktion haben?

Ich hoffe Ihr könnt mir helfen.

Beste Grüsse
Klaschl

Root
Hallo Klaschl

ControlObjekt.Parent --> Vater

Ja…

ControlObjekt.Parent.Parent.Parent --> UrOpa usw.

Ja…

  1. Man weiss nie wieviele Parents es gibt

Jain… es könnte ja eine regelmässige Struktur sein, die immer gleich viele Söhne hat. Aber in der Regel weiss man’s nicht.

  1. Selbst wenn, wäre doch eine rekursive Funktion recht
    komfortabel
    –> Die Abbruchbedingung muss abhängig von der Existenz des
    Parent-Objektes sein.

Wozu? Verwende doch die Root -Eigenschaft:
ControlObjekt.Root

Ich hoffe Ihr könnt mir helfen.

Brauchst du unbedingt eine rekursive Funktion, oder bist du nur auf der Suche nach dem „Urvater“?

Gruss
Peter

Hallo Peter,

ich hab jetzt eine rekursive Funktion geschrieben, da ich alle Elemente bis zum Obersten brauche.
Dein Tip mit .root ist schon mit eingearbeitet -> als Abbruchbedingung für die rekursive Funktion. Ich hatte bisher als Abbruchbedingung:
Objekt is Nothing

Danke für den Tip
Klaschl

Hallo Klaschl

ich hab jetzt eine rekursive Funktion geschrieben, da ich alle
Elemente bis zum Obersten brauche.

Hier noch ein entsprechndes Beispiel von Microsoft - ohne Rekursion:
http://msdn.microsoft.com/library/default.asp?url=/l…

Gruss
Peter