Takže jestli jsem to dobře pochopil podle těch screenů, tak tlačítko Button1 je na hlavním formuláři a otevírá se s ním dialog a tlačítko OK_button je na tom dialogu a potvrzuje se zavření. Znamená to tedy, že z události tlačítka na dialogu se snažíte zapisovat do nějakého objekt na jiném formu což je principielně špatně. Takhle bych to určitě neřešil, protože to Vám v budoucnu znemožní stejný form použít na jiném místě. A hlavně, Vy si kódem sice vytvoříte novou instanci dialogu (Dim dlg As New Dialog1) ale pak ji stejně neotevřete, místo toho otevíráte ten původní "vzor" podle kterého byl dialog vytvořen. Kdyby tam ten řádek kde instanci dialogu vytváříte nebyl, tak se vůbec nic nestane. Já bych to řešil následovně: -Tlačítku ok v dialogu nastavte dialog result na ok a na formuláři dialogu ho ve vlastnostech nastavte jako accept button. Obsluhu jeho události vymažte, nebude potřeba -Do události tlačítka, kterým otevíráte ten dialog přidejte i kód, kterým z textboxu přidáte položku do listboxu. Něják takto:
Private Sub Button1_Click(Byval Sender As System.Object,Byval e As System.EventArgs) Handles Button1.Click
Dim dlg As Dialog1=New Dialog1
dlg.ShowDialog 'otevřít právě vytvořenou instanci dialogu
'zkontroluju zda bylo stisknuto OK, pokud ano zapíšu text do listboxu
If dlg.DialogResult = Windows.Forms.DialogResult.OK Then
Me.Listbox1.Items.Add(dlg.Textbox1.Text)
End if
End Sub
|