Me.Close=アプリケーションの終了ではない? への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 質問者  ()
投稿日時
2008/3/11 00:24:00
Me.Closeはあくまでもウィンドウを閉じるメソッドで、アプリケーションを終了させるメソッドとは、では一体、何なんでしょうか。ちなみに、ここで言うアプリケーションとは全体を指します。全体の終了メソッドは、何なんですか? お恥ずかしながら、これまでまるで意識しませんでした。
このMainメソッドを抜けるとプログラムは終了します。
例えば、VBで最小のプログラムは以下のような構成になります。
Module Program
Sub Main()
End Sub
End Module
あるいは、
Public Class Form1
Inherits Form
Public Shared Sub Main()
End Sub
End Class
という形の場合もあります。
VisualStudioといった開発環境を使用してプログラムを開発する場合、これらのMainメソッドを目にすることがないかもしれませんが、内部的には自動で作成されているだけです。
Windowsアプリでは、典型的には以下のようなコードが構成されるのだとイメージしてもらえばだいたい合っていると思います。
Public Class Form1
Inherits Form
Public Shared Sub Main()
Application.Run(New Form1())
End Sub
End Class
Applicaton.Runメソッドが実行されるとForm1がCloseされるまで待機になりますので、Mainメソッドは終了しません。
しかし、Form1をクローズするとApplicaton.Runメソッドの実行が終了し、その結果、Mainメソッドの処理も終わり、プログラムは終了します。
こういう場合のForm1をメインフォームと呼んだりします。
VB2003までは開発環境としてサポートしている終了方法は、メインフォームを閉じる=終了でしたが、VB2005では、設定により変更できるようになっています。
(http://www.geocities.jp/i_love_balard/myhome/dnet/myapplication.htmlで示されているような画面で設定可)