Aktualisiert: 18.05.2007
Newest
  Tipps & Tricks
1.) Anpassung Controls an ein Formular (VB6)
2.) Kopier-Wiederaufnahme (VB6)
3.) Uhrzeit - alle Kürzel (VB6)
4.) Eigene IP-Addresse auslesen (VB6)
5.) Felder - Arrays (allgemeines, deklarieren) (VB.NET)
  Tutorials
1.) Prüfziffernverfahren österreichischer Sozialversic (VB6)
2.) Kommunikation zwischen Formularen bzw. Modulen (VB.NET)
3.) Musikdatein mittels API abspielen (VB6)
4.) Inputbox mit zusätzlichem Button (VB6)
5.) Access & MySQL | Teil 2/2 (VB6)
  Neueste Kommentare
  (letzten 50)
Thomas(21.02.2007 - 14:03)
Dag Johans..(16.11.2006 - 03:44)
Sebi2020(20.10.2006 - 21:43)
Suchen


 Grundlagen > Kommunikation zwischen Formularen bzw. Modulen     von MiB 
Seite: 2 von 4
zurück  |  vor
Kommunizieren von zwei Formularen

Hier erfahren Sie, wie zwei Formulare bzw. dessen Steuerelemente miteinander Informationen austauschen können.

Dazu öffnen Sie ein neues "Visual Basic Projekt" mit "Windows Anwendung".
Anschließend fügen Sie ein neues Formular unter dem Menüpunkt "Projekt\Windows Formular hinzufügen" mit dem Standardnamen "Form2" dazu.

Plazieren Sie auf der Form1 folgende Steuerelemente:
- Label (Name: Label1)
- TextBox (Name: TextBox1)
- Button (Name: Button1)

Plazieren Sie auf der Form2 folgende Steuerelemente:
- Label (Name: Label1)
- TextBox (Name: TextBox1)

Fügen Sie nun in beiden Formularen folgenden Code ein:
  Private Sub Form1_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load
With Me
.Label1.Text = ""
.TextBox1.Text = ""
End With
End Sub

Wenn Sie nun das Programm starten, wird nur die Form1 gestartet.




Form2 einblenden und Daten von Form1 in Form2 schreiben

Wir müssen unserem Programm erst mitteilen, dass die Form2 auch angezeigt werden soll.
Dazu fügen Sie folgenden Code in den Deklarationsteil der Form1 ein:
Dim oFrm2 As Form2

Und folgenden in die Form1 ein:
  Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click
Me.Button1.Enabled = False
oFrm2 = New Form2
oFrm2.Show()
End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Not IsNothing(oFrm2) Then
oFrm2.Label1.Text = Me.TextBox1.Text
End If
End Sub
Mit dem Syntax Dim oFrm2 As Form2 wird eine Instanz erzeugt.
Damit das Fenster angezeigt werden kann, muss ein neues Formularobjekt mittels oFrm2 = New Form2 instanziert werden. Mit oFrm2.Show() wird dieses angezeigt.
Der Code in der Sub TextBox1_TextChanged wird erst dann verarbeitet, wenn das Objekt oFrm2 initialisiert ist.
Wenn Sie das Programm starten und in die TextBox etwas eingeben, wird das auf der Form2 dargestellt.



Nun stellt sich aber die Frage, wie in der Form2 die Form1 behandelt werden kann.


Daten der Form2 in Form1 schreiben

Dazu muss natürlich wieder ein Formularobjekt erstellt werden. Wir müssen aber beachten, dass wir keine neue Instanz mittels New erstellen dürfen, da es das Formular Form1 schon gibt. Wir müssen also die Instanz übergeben.
Fügen Sie folgenden Code in den Deklarationsteil Form2 ein:
Friend oFrm1 As Form1

Und folgenden in die Form2 ein:
  Private Sub TextBox1_TextChanged(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles TextBox1.TextChanged
If Not IsNothing(oFrm1) Then
oFrm1.Label1.Text = Me.TextBox1.Text
End If
End Sub

Private Sub Form2_Closed(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Closed
oFrm1.Button1.Enabled = True
End Sub
Mittels Friend oFrm1 As Form1 wird ein für alle Formulare sichtbares Formularobjekt erzeugt.
Der Syntax der beiden Sub's ist klar.

Nun fügen Sie folgenden Code in die Sub Button1_Click der Form2 nach der Zeile oFrm2 = New Form2 ein:
oFrm2.oFrm1 = Me

Nun ist es möglich, dass Änderungen aus der Form2 gemacht werden können.

Wenn Sie nun das Programm starten, werden die Informationen beider Formulare ausgetauscht.

Seite: 2 von 4   zurück  |  vor   dazugefügt am:17.07.2004 | bereits betrachtet:6699 mal
Empfehlen Sie diese Seite | zu Favoriten hinzufügen  Copyright 2004 by visualbasic.at