PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einfache Frage in VB.net


Misanthrop
2004-05-30, 16:55:04
Hi!

Hab ein (hoff ich zumindest) recht triviales Problem:

In meinem Projekt sind 2 Forms, und ich will von der Form2 auf eine Variable in der Form1 zugreifen.

Dazu deklarier ich die Variable in der Form1 mit: Public asdf as string


in der Form2 leg ich mir ein Objekt der Form1 an: dim blah as new form1

aber wenn ich jetzt in der Form2 mit
messagebox.show(blah.asdf)
auf das Objekt zugreifen will, liefert er mir einen leeren Inhalt.



Weiß jemand ne Lösung oder kennt vielleicht eine URL wo Variablenübergabe für Dummies erklärt wird? ;)
Danke schon mal im Vorraus!

Misanthrop
2004-05-30, 17:34:40
ok, habs mittlerweile rausgefunden, allerdings hab ich jetzt ein anderes Problem und zwar:

Wenn ich auf das X rechts oben in Form2 klicke, wird zwar die Form geschlossen, aber das Programm läuft noch immer....

any ideas? ;)

govou
2004-05-30, 18:21:23
Es wäre nett von dir, wenn du deine Lösung zu dem ersten Problem präsentierst. Es gibt sicher noch andere Leute, die vielleicht irgendwann einmal ein ähnliches Problem haben.

huha
2004-05-30, 18:27:52
Ich denk mal, daß das Problem ist, daß er ein neues "Form1"-Objekt generiert und nicht einfach auf das andere, schon vorhandene zugreift.

Das mit dem Form schließen dürfte über den event handler gehen, schau mal, ob's irgendwo ein Ereignis gibt, das das abfängt. Ich könnte dir sagen, wie sich das in VB6 nennt, wenn es dir helfen würde.

-huha

Misanthrop
2004-05-30, 19:47:13
@huha: THX! Hatten wir eh schon mal in der Schule gehabt, habs nur vergessen:

Private Sub Form1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
End
End Sub




@Mr. B:
In die Form1 kommt folgendes (außerhalb der Klasse Form1):


Public Module Module1
Public PaFo As Form1
Public ChiFo As New Form2
End Module



und in die Klasse Form1 kommt:


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PaFo = Me
ChiFo.Variablenname2 = PaFo.Variablenname
PaFo.Hide()
ChiFo.Show()
End Sub



Dazu muss Variablenname (in der Form1) bzw. Variablenname2 (in der Form2) global als Public deklariert sein:
Public Variablenname As New String



P.S.: Vielleicht gibts einfachere/schönere Methoden das zu lösen, aber mir reicht jetzt mal diese. ;)