Me.Close=アプリケーションの終了ではない?

タグの編集
投稿者 質問者  () 投稿日時 2008/3/11 00:24:00
Me.Closeはあくまでもウィンドウを閉じるメソッドで、アプリケーションを終了させるメソッドとは、では一体、何なんでしょうか。ちなみに、ここで言うアプリケーションとは全体を指します。全体の終了メソッドは、何なんですか? お恥ずかしながら、これまでまるで意識しませんでした。
投稿者 よねKEN  () 投稿日時 2008/3/11 01:10:00
プログラムを起動するとプログラムの中のMainメソッドが呼ばれます。  
この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で示されているような画面で設定可)