.NET を使用したデスクトップアプリケーション(Windows)のうち、Windows Formsアプリケーションモデルの説明になります。
デスクトップアプリケーションは、WPFもあり、WPFのほうが見た目が洗練されていますが、Windows Formsアプリケーションもちょっとしたツールやアプリを作成する場合には便利です。
第一回目として、簡単なHello Worldアプリケーションを作成します。
プロジェクト作成
VisualStudio 起動
スタートメニューから「Visual Studio 2022」を選択します。
暫くすると下記画面が表示されます。

テンプレート選択
続けて「新しいプロジェクトの作成」を選択します。
下記テンプレート選択画面が表示されます。

プラットフォームにWindows、プロジェクトの種類にデスクトップを選択します。

「Windowsフォームアプリ」を選択して、次へをクリックします。
(言語はC#、VBとも選択可能ですが、ここではC#を選択します。)
.NET FrameworkのWindows フォームアプリケーションもありますが、ここでは.NETを使用するテンプレートを選択します。

プロジェクト構成を設定する画面が表示されます。
プロジェクト名は任意で分かりやすい名前、場所に保存先フォルダを指定します。
ソリューション名も今回のサンプルアプリとわかる名前を指定します。
デフォルトだと、ソリューションフォルダの中にプロジェクトフォルダができます。(赤枠の部分)

次へをクリックするとフレームワークのバージョンを選択する画面が表示されます。

ここでは長期サポート(LTS)である「.NET 8.0」を選択して作成ボタンをクリックします。
下記のようにWindowsフォームアプリのプロジェクトが起動すれば、プロジェクト作成の完了です。

プロジェクトファイル
プロジェクトファイル
ソリューションエクスプローラーで複数のファイルを束ねているのがプロジェクトになります。
さらにプロジェクトを束ねているのがソリューションです。

オレンジ色で囲んであるのがソリューションです。エクスプローラーで確認すると拡張子が「sln」のファイルになります。
赤枠で囲んであるのがプロジェクトです。エクスプローラーで確認すると拡張子が「csproj」のファイルです。プロジェクトは以下のファイル達から一つのモジュール(EXEやDLL)が生成されます。
フォームファイル一式
青枠で囲んであるのがフォームファイル一式です。「Form1.Designer.cs」ファイルが画面を作成するデザインファイルになります。デザイナでコントロールを配置していくとこのファイルが更新されます。
「Form1.cs」ファイルがコードビハインドソースと呼ばれ、実際の動作を記載していきます。実際は、画面に関する処理を書いて、それ以外のビジネスロジック等は別ファイル(別クラス)に記載します。
今回は簡単なサンプルなので、コードビハインドにすべての処理を記載します。
「Form1.resx」はリソースファイルと呼ばれ、コントロールのキャプションや、画像などが格納されます。このリソースを切り替えることで多言語対応することができます。
エントリーポイントファイル
黄色で囲んだ「Program.cs」ファイルがエントリポイントのファイルです。
開いていただくとMainメソッドがエントリポイントの関数(メソッド)になり、ウィンドウメッセージループが開始されます。
Hello World表示
デザイン
それではとてもシンプルなHello Worldを表示するフォームアプリを作成します。
「Form1.cs」ファイルをダブルクリックしてデザイナを開きます。
デザイナが開いたらツールボックスからLabelをフォームにドラッグ & ドロップします。

ドロップするとLabel1とうキャプションのラベルが配置されます。このラベルを選択して、右側に表示されるプロパティ一覧からTextプロパティを見つけて文字列を「Hello World」に変更します。
下記のようにキャプションが「Hello World」に変更されます。

同様にツールボックスからButtonをドラッグ&ドロップします。Textプロパティを「メッセージ」に変更します。このままだとフォームが無駄に大きいのでフォームの隅をつまんで大きさを小さくします。

これでデザイナでの作業は完了です。
コードビハインドソース
続いて、コードビハインドにソースを記載します。
先ほど作成したメッセージボタンをデザイナでダブルクリックします。
コードビハインドのソースが表示され、button1_Clickというメソッドが自動で追加されます。ここにボタンをクリックされたときの処理を追加します。
namespace HelloWinFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello World");
}
}
}
これでメッセージボタンをクリックしたときに「Hello World」というメッセージボックスが表示されます。
実行
F5キーをクリックして実行します。
デバッグモードでアプリが実行されます。

配置したラベルのHello Worldが表示されます。通常は、意味のあるメッセージやテキストを表示することになります。
メッセージボタンをクリックすると、下記の通り、Hello Worldのメッセージボックスが表示されます。

実際は、処理が完了したメッセージや、入力値がおかしいときの警告メッセージ、どちらの処理を行うかの選択メッセージなどを表示するときに使用します。
メッセージボックスは×で閉じ、アプリケーション本体も×で終了すると、デバッグモードが終了し、VisualStudioに戻ります。
とても簡単ですが、Windows Formsを使用したHellow Worldアプリケーションの説明は以上です。
次回は、もっと機能を付けたアプリケーションや、同じWindows向けのWPFアプリケーションの説明へと進みたいと思います。
コメント