俺の開発研究所

Ruby on Rails、Linux、Windowsを中心にIT技術系の備忘録とか。よく忘れるので。

*

VB.NETでアプリケーション起動時のフォーム・Mainメソッドを指定

      2014/08/31

VB.NETで複数のフォームが存在するWindowsアプリケーションプロジェクトで、アプリケーション起動時に実行される「フォーム」を指定する方法。

また、フォームではなく、「Mainメソッド」を指定する方法。

なお、今回のVisual Studioのバージョンは以下です。

  • Visual Studio Professional 2012

スポンサード リンク

スタートアップオブジェクトの設定

「ソリューションエクスプローラー」⇒ソリューション配下のプロジェクトを右クリック⇒「プロパティ」を開く。

「アプリケーション」タブ⇒「スタートアップオブジェクト」でプルダウンから選択する。

「スタートアップオブジェクト」のプルダウンには、プロジェクト内の各フォームと、「Sub Main」が存在する。

なお、「Sub Main」は「アプリケーション フレームワークを有効にする」をチェックオフにしないと表示されないみたい。

「Sub Main」を選択する場合は、自分で新規モジュール・クラスを作成し、Mainメソッドを「Shared」で作成する必要がある。

Mainメソッドはアプリケーションのエントリポイントとなるため、アプリケーション実行時にまずMainメソッドが実行されるようになる。

また、Mainメソッドからフォームを呼び出す場合は、下記のように「Application」クラスの「Run」メソッドでフォームのインスタンスを生成し、呼び出す。

ちなみに、「スタートアップオブジェクト」でフォームを選択した場合は、Mainメソッドを記述していないのに正しくアプリケーションが実行される。

これは、VB.NETのコンパイラが上記のようなMainメソッドを自動で挿入して、EXEファイルを作成してくれるためらしい。

デバッグ時の引数の設定

なお、デバッグ時の引数は、下記で設定する。

「ソリューションエクスプローラー」⇒ソリューション配下のプロジェクトを右クリック⇒「プロパティ」を開く。

「デバッグ」タブ⇒「開始オプション」⇒「コマンドライン引数」に半角スペース区切りで設定する。

参考サイト

@IT:.NET TIPS VB.NETでアプリケーション起動時に実行されるフォームを変更するには? – C#

アプリケーションのエントリポイントを自作する: .NET Tips: C#, VB.NET

 - Visual Basic(VB.NET), Visual Studio