投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/2/19 19:58:28
誤記訂正。

> もしかして、ShowModalDialog メソッドで呼び出していたりはしませんか?
上記は、「ShowDialog メソッド」の書き間違いです。m(_ _;)m

つまり、Main メソッド内に
Application.Run(New Form1("arg"))
ではなく、
Using f As New Form1("arg")
  f.ShowDialog()
End Using
などと書いていたのではありませんか、という確認でした。

後者の場合、Form が非表示になると、そのまま Main の End Sub に到達してしまい、アプリが終了します。
前者の場合、Form が非表示になっても Application.Run は続行されるため、アプリは起動し続けます。


ShowDialog メソッドで呼び出した場合は、
 ・呼び出し元は、フォームが表示されている間、処理がそこでブロックされる。
  そしてフォームが閉じるか非表示になるまで、呼び出し元へ制御が戻らない。
 ・フォームが閉じられても、そのフォームは自動的に破棄されないため、
  呼び出し元で Using を使うなどして、そのフォームを Dispose しなければならない。
という動作になります。

一方、Application.Run や Show メソッドなどで呼び出した場合は、
 ・フォームが表示された後も、呼び出し元の処理はブロックされない。
 ・フォームが閉じられた場合、そのフォームは自動的に破棄されるため、
  そのフォームを明示的に Dispose する必要はない。
という動作になります。