Auf Text einer anderen Form zurückgreifen...

Mailyn

Erfahrenes Mitglied
Hab ein Problem! Dazu folgendes Beispiel:
Man gibt in FORM1 in Text1 : "Herbert" ein! Dann kommt man auf FORM2!
Dort steht folgender Code in einem z.B Command-Klick-Ereignis:
MsgBox "Hallo, " + Form1.Text1.Text + "! Herzlich Willkommen"

Aber das geht nicht! Bei mir wird dann nur "Hallo, ! Herzlich Willkommen" angezeigt!
Wie geht das anders?
 
Hallo Mailyn,

jo, das Problem hatte ich in meinem ersten Stoppuhr-Spiel auch. Also am besten geht dies mit "Public"-Variablen. Du erstellst also ein neues Modul und schreibst dort den folgenden Code rein:
Code:
Option Explicit

Public Spielername as String

Wenn du nun auf FORM1 bist, dann machst du beim Wechsel zur FORM2 einfach den folgenden Code in dein (z. B.) CommandButton.
Code:
Spielername = Text1.Text
Unload Me
FORM2.Show

Beim Form Load Ereignis auf FORM2 greifst du nun auf die Spielernamevariable zu. In einer Messagebox sähe das dann so aus:
Code:
MsgBox "Hallo, " + Spielername + "! Herzlich Willkommen"

Soweit zu den Variablen. Normalerweise müsste es auch so gehen, aber wahrscheinlich lädst du deine FORM1 wieder aus dem Speicher mit "Unload Me". Wenn du das weglässt und direkt die FORM2 lädst, dann müsste es glaub' ich klappen. Doch dabei musst du natürlich beachten, dass du vielleicht die FORM1 beim Anzeigen der FORM2 als störend empfindest ;) .

Naja, die Lösung mit den Variablen ist sowieso die beste und 100 Prozentig sicher :)

Ich hoffe, ich konnte helfen.

Ciao:
Da' Hacker
 
Mach die Form halt einfach unsichtbar mit Form1.Hide anstatt sie mittels "Unload Form1"/"Unload Me" aus dem Speicher zu löschen. Dann sollte es keine Probleme geben.
Nachdem du dann deinen Hallo-Text angezeigt hast kannst du die Form immer noch aus dem Speicher entladen, wenn du nicht mehr auf sie zugreifen möchtest.
 
Zurück