Hallo Matthias,
Hallo,
bin mal wieder dabei mich in Programmierung zu Versuchen.
Hab eine Form1, und eine Klasse in der ich meine DB-Anbindung
drin habe. In Form1 wird ein Objekt mydbobj erzeugt, welches
die verbindung aufbaut.
Das ist gut so. Man sollte immer die GUI von den Daten versuchen zu trennen
Wenn ich jetzt in Form2 wechsel, kann ich mein Objekt nicht
mehr aufrufen… Oder muss es nur an anderer Stelle,
vielleicht nicht in Form1 erstellen?
Das ist so weit richtig, da die Referenz nur in Form1 zur Verfügung steht! Möchtest Du nun aus einem anderem Formular oder aus einer anderen Klasse auf die Refernenz hinzugreifen, so musst du sie ihr übergeben
Alternativ kannst du sie auch als Shared Member allgemeingültig declarieren, aber davon würde ich abraten.
Für Dein Vorhaben, implementiere einfach in der Form2 eine Eigenschaft, welche die Referenz entgegennimmt. Beim instanzieren der Form2 setz du dann die Eigenschaft und kannst sie dann beliebig in der Form2 nutzen Hört sich vielleicht kompliziert an? Nein ist es nicht! Hier ein Demo zur Veranschaulichung
'Form1
Public Class Form1
Private MyCon As Connection
Private Sub Form1\_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
MyCon = New Connection
End Sub
Private Sub Button1\_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim MyForm As New Form2
MyForm.MyConnection = MyCon
MyForm.ShowDialog()
End Sub
End Class
'Form2
Public Class Form2
Private MyCon As Connection = Nothing
Protected Friend WriteOnly Property MyConnection As Connection
Set(ByVal value As Connection)
MyCon = value
End Set
End Property
End Class
Wie Du siehst kannst du nun in Form2 über die Variable MyCon auf die Refernez zugreifen
MfG Alex