VB.NETで複数のフォームが存在するWindowsアプリケーションプロジェクトで、アプリケーション起動時に実行される「フォーム」を指定する方法。
また、フォームではなく、「Mainメソッド」を指定する方法。
なお、今回のVisual Studioのバージョンは以下です。
- Visual Studio Professional 2012
スタートアップオブジェクトの設定
「ソリューションエクスプローラー」⇒ソリューション配下のプロジェクトを右クリック⇒「プロパティ」を開く。
「アプリケーション」タブ⇒「スタートアップオブジェクト」でプルダウンから選択する。
「スタートアップオブジェクト」のプルダウンには、プロジェクト内の各フォームと、「Sub Main」が存在する。
なお、「Sub Main」は「アプリケーション フレームワークを有効にする」をチェックオフにしないと表示されないみたい。
「Sub Main」を選択する場合は、自分で新規モジュール・クラスを作成し、Mainメソッドを「Shared」で作成する必要がある。
Mainメソッドはアプリケーションのエントリポイントとなるため、アプリケーション実行時にまずMainメソッドが実行されるようになる。
また、Mainメソッドからフォームを呼び出す場合は、下記のように「Application」クラスの「Run」メソッドでフォームのインスタンスを生成し、呼び出す。
Public Class Cls_Main <STAThread()> _ Shared Sub Main() Application.Run(New Form1) End Sub End Class
ちなみに、「スタートアップオブジェクト」でフォームを選択した場合は、Mainメソッドを記述していないのに正しくアプリケーションが実行される。
これは、VB.NETのコンパイラが上記のようなMainメソッドを自動で挿入して、EXEファイルを作成してくれるためらしい。
デバッグ時の引数の設定
なお、デバッグ時の引数は、下記で設定する。
「ソリューションエクスプローラー」⇒ソリューション配下のプロジェクトを右クリック⇒「プロパティ」を開く。
「デバッグ」タブ⇒「開始オプション」⇒「コマンドライン引数」に半角スペース区切りで設定する。
コメント