Caption aus 'Kindsformular' auslesen

Hallo Ihr lieben!

Ich brauche mal wieder eure Hilfe.

Ich habe ein MDI Hauptformular. Dort öffne ich über das Menü ein kleines Fenster, in welchen ich aussuchen kann welche „Kindsformulare“ angezeigt werden sollen. Dies mache ich dann mit Set x = New neues Formular.In der Form.caption steht auch der jeweilige Name.Das funzt auch alles. Soweit so gut.
Nun will ich auf das jeweilige Formular klicken und das active soll seinen Namen im Hauptformular (Statusleiste) anzeigen. Ich habe schon mit Declare Function GetActiveWindow und mit PropertyLet und Get probiert, aber ich bekomme immer nur das erste oder das letzte, aber nie das was ich anklicke.
Ich bin schon fast am verzweifeln und sitze nun den dritten Tag drüber.Aber „vieleicht“ ist die Lösung nur ein paar Minuten von mir entfernt.

Danke Marcus

Hi Marcus,
versuche mal:

If Screen.ActiveForm.Name = X.Name (Deine ChildForm eben) Then …

Gruß
Klaus

Hallo Marcus,

denke nicht so kompliziert und mache dich der eigenschaften und Ereignisse zu nutzen :wink:
Vom Prinzip her, mache das wiefolgt.
Du willst ein neues Fenster laden, dabei gibst du der Tag Eigenschaft des Fenster einfach den Text mit der angezeigt werden soll! In der jeweiligen Form, welche ja sicherlich die selbe ist, da du sie mit Set … laden tust, schreibst du einfach in dem Form Activate Ereignis, die Zuweisung das der Titel in der MDI Form angezeigt wird. Hört sich vlt. kompliziert an, ist es aber nicht :smile:

Ein kleines Demo zur Veranschaulichung.

'MDI Formular = MDIForm1
'UnterFormulare = Form1 -\> MDI Child = True

'Code im MDI Formular

Option Explicit

Private Sub mnuneu\_Click() 'MenuPunkt neu
 Dim F As Form1 'Die Form die geladen werden soll (Form1)
 Dim I As Byte 'Variable für die Schleife
 For I = 1 To 5 'Wir erstellen 5 Fenster
 Set F = New Form1 'F = neue Form1
 F.Tag = "Fenster:" & CStr(I) 'Tag von Form1 = Fenster + I 
 F.Show 'Wir zeigen das Fenster an
 Set F = Nothing 'Wir setzen F auf Nichts ( Nothing)
 Next
End Sub


'Code dann in der Form1

Option Explicit

Private Sub Form\_Activate() 'Beim aktivieren der Form
 MDIForm1.Caption = Me.Tag 'Wir setzen den Text in der MDI Form 
End Sub

Ich hoffe das ist das was du suchst? Du musst nur den Formularnamen anpassen und halt das Steuerelement was den Text anzeigt!
Du musst aber bedenken, das bei der Zuweisung f.Tag = … das Form_Load Ereignis ausgelöst wird :smile:

MfG Alex

Hallo Alex!

Das hat erst einmal wunderbar geklappt. Mit der *.Tag Eigenschaft, da wäre ich nie drauf gekommen, weil ich sie noch nie benutzt habe. Nun muß ich mal sehen wie ich weiterkomme.

Danke Marcus

Hallo Alex!

Hallo Marcus,

man lernt halt nie aus und versucht immer den schwersten Weg zu nehmen. Wobei die lösung meist simple ist :wink:

Alternativ haettest du auch eine Variable global declarieren koennen und ihr dann den Wert zuweisen und halt wieder auslesen :wink:

Das hat erst einmal wunderbar geklappt. Mit der *.Tag
Eigenschaft, da wäre ich nie drauf gekommen, weil ich sie noch
nie benutzt habe. Nun muß ich mal sehen wie ich weiterkomme.

Wobei hast du denn noch Probleme?

Danke Marcus

Nichts zu danken :smile:

MfG Alex