Jag har en form (frmSettings) som jag vill öppna från två olika andra forms (frmMain och frmTemp). frmSettings ska skicka diverse inställningar till den "parent form" den har för tillfället. Jag anser att det är dålig design att låta frmSettings känna till frmMain. Gör istället inställningarna tillgängliga som egenskaper: Jaha, det går att komma åt formen efter att man har stängt den. Nu så här i efterhand så är det ganska logiskt =) Det gjorde det hela mycket lättare.Olika Parent form
När jag bara hade en enda parent form så löste jag det så här:
frmMain:
<code>
Public SomeSetting As String
Private Sub btnSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSettings.Click
Dim frmSettings As New formSettings
frmSettings.frmOwner = Me
frmSettings.ShowDialog
End Sub
</code>
frmSettings:
<code>
Public frmOwner As formMain
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
frmOwner.SomeSetting = "Nånting"
Me.Close
End Sub
</code>
Det har fungerat riktigt bra. Men nu när jag försöker ha två olika parent forms så fungerar det inte eftersom jag inte vet hur jag ska deklarera frmOwner i frmSettings, dvs om den ska vara formMain eller formTemp. Hur löser jag det?
ThomasSv: Olika Parent form
frmMain:
<code>
Private Sub btnSettings_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSettings.Click
Dim frmSettings As New formSettings
frmSettings.ShowDialog
SetNewSettings(frmSettings.SomeSetting)
End Sub
</code>
frmSettings:
<code>
public SomeSetting as String
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
SomeSetting = "Nånting"
Me.Close
End Sub
</code>
frmSettings kan nu användas av vilket annat formulär som helst.
Nu är det ju rekomenderat att göra en riktig property procedure. Men jag överlämnar det till dig.Sv:Olika Parent form
Tackar!
Thomas