このアプリをVB6から変換しました。私は2つのフォームを持っています。Form1 は、メニュー項目を介して Form2 をインスタンス化します。閉じる (X) をクリックしたときに Form2 を終了させるのに問題があります。Form2 が「アイドル」の場合、正常に閉じます。しかし、何かを処理しているループにいる場合、すべてのイベントが発生しますが、Form2 で処理を続けます。Dispose、Close、Application.Exit、Application.ExitThreadをいじってみました。私の最後の試みは、Form1 に戻って Form2 を破棄する独自のイベントを作成することでした。契約は何ですか?ところで、Show vs ShowDialog だけを使用すると、Form2 が点滅して消えます。
Form1 does this
Dim f2 as Import
:
Hide()
f2 = New Import
AddHandler f2.die, AddressOf killf2
f2.ShowDialog(Me)
Show()
Private Sub killf2()
f2.Dispose()
f2 = Nothing
End Sub
Form2
Public Event die()
Private Shadows Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
Dispose()
Close()
e.Cancel = False
RaiseEvent die()
End Sub