「TIPS:VB.NETでアプリケーション起動時に実行されるフォームを変更するには?」では、Visual Basic .NET(以下VB.NET)で複数のフォームを持つWindowsアプリケーションを作成した場合に、アプリケーション実行時に最初に表示されるフォームを切り替える方法を紹介した。本稿では、これと同じことをC#で行う場合の方法について解説する。
なお本稿では、起動時に実行されるWindowsフォームのクラスを切り替えているが、Windowsフォーム以外のクラスでも同様のことを実現できる。例えばコンソール・アプリケーションでも、起動時に実行するクラスを切り替えることなども可能である。
本稿のサンプル・プログラムでは、赤い背景のウィンドウ(Form1クラス)と青い背景のウィンドウ(Form2クラス)という2つのWindowsフォームを持つWindowsアプリケーションを作成する。そして、このForm1クラスとForm2クラスのそれぞれのコードに、次のサンプル・コードのように「Mainメソッド」(=エントリ・ポイント)を追加しておく。
using System;
using System.Windows.Forms;
namespace WindowsApplication1
{
public class Form1 : System.Windows.Forms.Form
{
// エントリ・ポイント(1)
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
public Form1()
{
// ウィンドウの背景を赤色に設定
this.BackColor = System.Drawing.Color.Red;
}
}
public class Form2 : System.Windows.Forms.Form
{
// エントリ・ポイント(2)
[STAThread]
static void Main()
{
Application.Run(new Form2());
}
public Form2()
{
// ウィンドウの背景を青色に設定
this.BackColor = System.Drawing.Color.Blue;
}
}
}
赤い背景のウィンドウであるForm1クラスと、青い背景のウィンドウであるForm2クラスのそれぞれのコードに、Mainメソッドを追加しておく。
後はVB.NETの場合と同じように[プロジェクトのプロパティ ページ]ダイアログを開いて、次の画面のように、[スタートアップ オブジェクト]項目に起動時に表示したいWindowsフォームのクラスを指定するだけだ。

起動時に表示するフォームの設定([プロジェクトのプロパティ ページ]ダイアログ)
[プロジェクトのプロパティ ページ]ダイアログを開き、ダイアログの中にある[スタートアップ オブジェクト]で任意のクラスをリストから選択して指定する。この指定により、起動時に表示するフォームを切り替えることができる。[プロジェクトのプロパティ ページ]ダイアログを開くには、ソリューション・エクスプローラ上で、フォームを含んでいるプロジェクトをマウスにより選択し、右クリックして表示されるメニューから[プロパティ]を選択すればよい。
(1)ツリー表示の中から[共通プロパティ]−[全般]を選択する。
(2)[アプリケーション]項目の[スタートアップ オブジェクト]で、起動時に表示するWindowsフォームのクラスを選択する。
[スタートアップ オブジェクト]に「WindowsApplication1.Form1」クラスを指定した場合には、次の画面のように赤いウィンドウ(=Form1クラスのWindowsフォーム)が表示される。

アプリケーション起動時に表示されるウィンドウ(Form1クラスの場合)
[スタートアップ オブジェクト]に「WindowsApplication1.Form1」クラスを指定した場合には、赤いウィンドウが表示される。
また、[スタートアップ オブジェクト]に「WindowsApplication1.Form2」クラスを指定した場合には、次の画面のように青いウィンドウ(=Form2クラスのWindowsフォーム)が表示される。

アプリケーション起動時に表示されるウィンドウ(Form2クラスの場合)
[スタートアップ オブジェクト]に「WindowsApplication1.Form2」クラスを指定した場合には、青いウィンドウが表示される。
なお、[スタートアップ オブジェクト]として指定するクラスには、アプリケーションが最初に実行されるエントリ・ポイント(つまり「Mainメソッド」)が必要である。このMainメソッドが記述されていないと、[スタートアップ オブジェクト]の項目選択リストに列挙されないので注意が必要である。
カテゴリ:Visual Studio .NET 処理対象:プロジェクト
カテゴリ:C# 処理対象:フォーム
使用キーワード:Mainメソッド
関連TIPS:VB.NETでアプリケーション起動時に実行されるフォームを変更するには?
Copyright© Digital Advantage Corp. All Rights Reserved.