.NET系のアプリケーションでは、スタートアップフォームを指定していると、スタートアップフォームを閉じた場合にアプリケーションが終了します。
(正確には、メインフォームに指定されたフォームを閉じた場合にアプリケーションが終了します)
これを、全てのフォームが閉じられた場合に終了するように変更したいことがあります。
全てのフォームが閉じられた場合に終了する実装には、以下の方法があります。
 1.ApplicationContextクラスを利用する
 2.プロジェクトのプロパティから設定する(VB 2005以降)

1.ApplicationContextクラスを利用する
ApplicationContextクラスは、メッセージ ループを終了させる条件を再定義することができます。この機能を利用して、全てのフォームが閉じられた場合に終了するように変更します。

以下、サンプル。
《MainClass.vb》
Public Class MainClass
Public Shared Sub Main(ByVal Args() As String)
Application.Run(New AppContext)
End Sub
End Class

《AppContext.vb》
Public Class AppContext
Inherits System.Windows.Forms.ApplicationContext

Private FormCount As Long

Public Sub New()
Dim frm1 As New Form1
AddHandler frm1.Closed, AddressOf OnFormClosed
FormCount = FormCount + 1
frm1.Show()

Dim frm2 As New Form2
AddHandler frm2.Closed, AddressOf OnFormClosed
FormCount = FormCount + 1
frm2.Show()
End Sub

Private Sub OnFormClosed(ByVal sender As Object, ByVal e As EventArgs)
FormCount = FormCount - 1
'全てのフォームが閉じられている場合、アプリケーションを終了する
If FormCount = 0 Then
ExitThread()
End If
End Sub
End Class

《実行前準備》
・スタートアップを「Sub Main」に変更する。

上記のサンプルでは、開いているフォームの個数をカウントするためにFormCountという変数を利用しています。この個数をインスタンス生成時に加算し、フォームを閉じた時に減算することによって、全てのフォームのインスタンスがなくなるまで終了しないようにしています。
サンプルでは、一度にフォームを複数表示していますが、別々のタイミングで表示させることも可能です。

2.プロジェクトのプロパティから設定する
 VB 2005以降では、プロジェクトのプロパティから同様の設定ができます。
  1.メニューバーの[プロジェクト]-[プロパティ]を選択する。
  2.[アプリケーション]タブを選択します。
  3.[シャットダウンモード]に「最後のフォームが閉じるとき」を設定する
 ※VB.NET 2003以前を利用している場合は、1の方法で実装する必要があります。

【補足事項】
・VB.NETでは、スタートアップフォームに指定したフォームが、メインフォームに設定されます。
・ApplicationContextクラスを継承したクラスでメインフォームを指定するには、以下のようにします。
  Dim frm As New Form1
 Me.MainForm = frm

・「2.プロジェクトのプロパティから設定する」の場合には、以下の条件があります。
  1)Windowsアプリケーション プロジェクトであること
  2)スタートアップフォームは、フォームが指定されていること
 この条件を満たしていない場合、設定を変更することができないので、注意して下さい。

【参考URL】
・MSDNライブラリ
 「ApplicationContext クラス