Я думаю, вы пересекли свои события.Вы хотите, чтобы form1, содержащая экземпляр form2, прослушивала событие form2closing в form2.Тогда вы можете установить f2 = ничего.
Форма 1 должна полностью заключать форму 2.
вот пример:
Public Class MDIMain
Private WithEvents _child As frmViewChild
Friend Sub viewChildShow()
_child = New frmViewChild
_child.MdiParent = Me
_child.WindowState = FormWindowState.Maximized
_child.Show()
End Sub
Private Sub _child_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles _child.FormClosing
_child = Nothing
End Sub
не добавляйте ничего в форму2, попробуйте
Dim f2 as Import
Hide()
f2 = New Import
f2.ShowDialog(Me)
Show()
Private Sub f2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles f2.FormClosing
set f2 = nothing
End Sub
re: ваш комментарий возвращается в форму form2 и продолжает обработку следующего оператора в обработчике события click
, который является функцией, и она будет вызывать такое поведение.вам нужно убедиться, что me.close или close me является последним утверждением в form2, что выполнять больше нечего.