Von einem MDI-Child auf ein anderes Zugreifen

meilon

Erfahrenes Mitglied
Hiho,
Ich schreib an einem Programm, welches MDI benutzt.

Für ein einheitliches Layout habe ich eine Form (frmLists), die je nach dem was angezeigt werden soll ein ListView beim Form_Load anzeigt (über eine Funktion, die als einen Parameter "TargetForm as Form" erwartet. Klappt auch alles. Jetzt bin ich gerade dabei etwas zur Datenbank hizuzufügen. Mit einem klick auf speichern soll auch die Liste neugeladen werden

Nur weiß ich nicht, wie ich das machen soll!

Im MainForm lade ich die neue Form so: Set frmBooks = frmLists

Wenn ich nun über frmLists rangehen will, passiert nix (logisch!) und frmBooks kennt er nicht! Und wenn ich über frmMain.frmBooks gehe passiert auch nix! Wie gebe ich nun die Form korrekt an die Funktion weiter (120 Zeilen!), damit die weiß, was zu tun ist?

mfg
 
Wenn die Form in Form_Load übergeben werden soll, dann könntest du "Me" verwenden:
("Me" gibt einen Verweis auf die Form zurück, zu der eine Sub/Function gehört)
Code:
Private Sub Form_Load
...
Sub_Die_Irgendwie_Heisst Me
...
End Sub
Die Defintion der Sub, an die die Form übergeben werden soll, könnte so lauten:
Code:
Public Sub Prozedur_Die_Irgendwie_Heisst(ByRef TargetForm as Form)
 
oder auch:
Public Sub Prozedur_Die_Irgendwie_Heisst(ByRef TargetForm as frmLists)

Als Alternative Möglickeit könnte ich noch folgendes anbieten:
Du durchläufst alle geladenen Formen des Forms-Objekts und suchst beispielsweise an der Tag-Eigenschaft der Form die richtige heraus:
Code:
Dim MeineForm As Form
For Each MeineForm In Forms
	If MeineForm.Tag = "blablablub" Then
		Sub_Die_Irgendwie_Heisst MeineForm
		Exit For
	End If
Next
Konnte ich dir damit helfen?
 
Zurück