Nechápu, co daný kód má dělat. Pokud potřebujete udělat okno, kde může uživatel něco změnit, a pak chcete změny odvolat tlačítkem Storno, tak to rozhodně není důvod dělat kvůli tomu druhou instanci okna. Předpokládám, že okno zobrazuje nějaká data (např. nějaký objekt). Když okno vytvoříte a objekt s daty mu předáte, natáhne si okno hodnoty z objektu do svých komponent. Jakmile zmáčknete OK, hodnoty z komponent se uloží zpět do objektu. Pokud se zmáčkne storno, zavoláte pouze Me.Close, s objektem se nic nestane a změny se nikam neuloží. Na propojení komponent a vlastností objektu se dá použít databinding, ale na to teď můžeme zapomenout.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim okno = New Form2()
okno.Objednavka = objednavka 'předáme oknu data
okno.ShowDialog()
End Sub
Public Class Form2
Public Property Objednavka As Objednavka
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
CisloTextBox.Text = Objednavka.Cislo
CenaNumUpDown.Value = Objednavka.Cena
End Sub
Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click
Objednavka.Cislo = CisloTextBox.Text
Objednavka.Cena = CenaNumUpDown.Value
Close()
End Sub
Private Sub StornoButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StornoButton.Click
Close()
End Sub
End Class
Public Class Objednavka
Public Property Cislo As String
Public Property Cena As Decimal
End Class
|