Auf dynamisch zugefügtes ContainerControl zugreifen

Hallo,

habe meinem Window1 ein ContainerControl dynamisch hinzugefügt.

Dim dashboard As New Dashboard ' ContainerControl dashboard.EmbedWithin(Self, 0, 0, Self.Width, Self.Height)

Jetzt möchte ich im nächsten Atemzug dashboard von einem Button aus ansprechen und show/hide ausführen. Wie speichere ich dashboard in einer Variablen?
Das folgende haut nicht hin

App.dashboard = dashboard
da App.dashboard erst zur Laufzeit deklariert würde …

Introspection - komme ich auch gerade nicht weiter. Ich komme nicht an die zugefügten ContainerControls heran:

[code] Sub Dim props() as Introspection.TypeInfo = Introspection.GetType(Self).GetProperties()

for each p as Introspection.PropertyInfo in props

System.DebugLog("p.Name: " + p.Name)

next
[/code]

Who knows?

du kannst doch dir ein Array für die Container anlegen und dort hinzufügen.
Und dann kannst du jederzeit über das Array alle Container ansprechen.

Einfach eine Referenz behalten…

Das Array zur designtime anlegen, oder geht das auch zur runtime?

Klar geht das zur Runtime :slight_smile:

Das ist ja toll!!!

Kannst Du vielleicht noch eine oder vielleicht zwei Zeilen Code in den Ring werfen?

Schwierig mit dem iPhone hier. Aber so etwas wie:

Dim myContainerArray() as myContainerControl
Dim c as new myContainerControl
c.embedWithin …
MyContainerArray.append c

Super, Danke.

Und myContainerArray ist dann global verfügbar und direkt ansprechbar?

Wenn du es entsprechend definiertst, ja. Z.B. als Property des Fensters.

Das hat Alex nicht ganz richtig beantwortet.

Wie du gemerkt hast brauchst du “irgendwo” eine Referenz zur ContainerControl um sie anzusprechen.

Dazu legst du beim design eine variable an die deine Referenz enthalten soll, zB ein array des ContainerControl als Property des Fensters.

In der runtime kannst du dann deine ContainerControl dort ablegen.

Jetzt wird ein Schuh d’raus! Das ist der ganze Knackpunkt.
Wenn man gewohnt ist Alles zur Laufzeit zu erzeugen, ist das etwas ‘Old School’.

Danke Euch Allen für die Geduld :slight_smile: