チュートリアル: .NET を使用して Windows フォーム アプリを作成する
この短いチュートリアルでは、Visual Studio で新しい Windows フォーム アプリを作成する方法について説明します。 最初のアプリが生成された後、コントロールを追加する方法と、イベントを処理する方法について説明します。 このチュートリアルを終了すると、リスト ボックスに名前を追加する簡単なアプリが作成されます。
このチュートリアルでは、次の作業を行う方法について説明します。
- 新しい Windows フォーム アプリを作成する
- フォームにコントロールを追加する
- コントロール イベントを処理してアプリの機能を提供する
- アプリを実行する
前提条件
ヒント
Visual Studio 2022 バージョン 17.4 以降を使い、.NET 7 と .NET 6 の両方について個別のコンポーネントをインストールします。 .NET 7 のサポートは Visual Studio 2022 バージョン 17.4 で追加されました。
Windows フォーム アプリを作成する
新しいアプリを作成するための最初のステップは、Visual Studio を開き、テンプレートからアプリを生成することです。
Visual Studio を開きます。
[新しいプロジェクトの作成] を選択します。
[テンプレートの検索] ボックスに「winforms」と入力し、検索結果が表示されるのを待ちます。
[コード言語] ドロップダウンで、 [C#] または [Visual Basic] を選択します。
テンプレートの一覧で [Windows フォーム アプリ] を選択し、[次へ] をクリックします。
重要
Windows フォーム アプリ (.NET Framework) テンプレートは選択しないでください。
次の図は、C# と Visual Basic の両方の .NET プロジェクト テンプレートを示しています。 コード言語フィルターを適用すると、対応するテンプレートが表示されます。
[新しいプロジェクトの構成] ウィンドウで、[プロジェクト名] を「Names」に設定し、[次へ] をクリックします。
[場所] のパスを調整することで、プロジェクトを別のフォルダーに保存することもできます。
最後に、[追加情報] ウィンドウで、[フレームワーク] 設定に [.NET 6.0 (長期サポート)] を選択し、[作成] をクリックします。
Visual Studio を開きます。
[新しいプロジェクトの作成] を選択します。
[テンプレートの検索] ボックスに「winforms」と入力し、検索結果が表示されるのを待ちます。
[コード言語] ドロップダウンで、 [C#] または [Visual Basic] を選択します。
テンプレートの一覧で [Windows フォーム アプリ] を選択し、[次へ] をクリックします。
重要
Windows フォーム アプリ (.NET Framework) テンプレートは選択しないでください。
次の図は、C# と Visual Basic の両方の .NET プロジェクト テンプレートを示しています。 コード言語フィルターを適用すると、対応するテンプレートが表示されます。
[新しいプロジェクトの構成] ウィンドウで、[プロジェクト名] を「Names」に設定し、[次へ] をクリックします。
[場所] のパスを調整することで、プロジェクトを別のフォルダーに保存することもできます。
最後に、[追加情報] ウィンドウで、[フレームワーク] 設定に [.NET 7.0 (Standard Term Support)] (.NET 7.0 (標準期間サポート)) を選び、[作成] をクリックします。
アプリが生成されると、Visual Studio のデザイナー ペインに既定のフォーム Form1 が開かれます。 フォーム デザイナーが表示されない場合は、 [ソリューション エクスプローラー] ペインでフォームをダブルクリックして、デザイナー ウィンドウを開きます。
Visual Studio の重要な部分
Visual Studio での Windows フォームのサポートには、アプリを作成するときにやりとりする 4 つの重要なコンポーネントがあります。
ソリューション エクスプローラー
プロジェクトのファイル、コード、フォーム、リソースのすべてがこのペインに表示されます。
Properties
このペインには、選択した項目に基づいて構成できるプロパティ設定が表示されます。 たとえば、 [ソリューション エクスプローラー] から項目を選択した場合、そのファイルに関連するプロパティ設定が表示されます。 [デザイナー] でオブジェクトを選択した場合は、コントロールまたはフォームの設定が表示されます。
フォーム デザイナー
これは、フォーム用のデザイナーです。 対話型であり、 [ツールボックス] からオブジェクトをドラッグ アンド ドロップすることができます。 デザイナーで項目を選択して移動することにより、アプリのユーザー インターフェイス (UI) を視覚的に作成できます。
ツールボックス
ツールボックスには、フォームに追加できるすべてのコントロールが含まれています。 現在のフォームにコントロールを追加するには、コントロールをダブルクリックするか、コントロールをドラッグ アンド ドロップします。
ヒント
ツールボックスが表示されない場合は、[表示]>[ツールボックス] メニュー項目を使って表示できます。
コントロールをフォームに追加する
Form1 のフォーム デザイナーを開いた状態で、 [ツールボックス] ペインを使用して、次のコントロールをフォームに追加します。
- ラベル
- Button
- Listbox
- テキストボックス
次の設定に従って、コントロールの位置とサイズを設定できます。 次に示すスクリーンショットと一致するように視覚的に動かすか、各コントロールをクリックして [プロパティ] ペインで設定を構成します。 フォームのタイトル領域をクリックして、フォームを選択することもできます。
Object | 設定 | 値 |
---|---|---|
形式 | Text | Names |
サイズ | 268, 180 |
|
Label | 場所 | 12, 9 |
Text | Names |
|
Listbox | 名前 | lstNames |
場所 | 12, 27 |
|
サイズ | 120, 94 |
|
テキスト ボックス | 名前 | txtName |
場所 | 138, 26 |
|
サイズ | 100, 23 |
|
Button | 名前 | btnAdd |
場所 | 138, 55 |
|
サイズ | 100, 23 |
|
Text | Add Name |
次のようなフォームがデザイナーに表示されます。
イベントを処理する
フォームへのすべてのコントロールのレイアウトが済んだので、コントロールのイベントを処理してユーザー入力に応答する必要があります。 フォーム デザイナーをまだ開いたままにして、次の手順を実行します。
フォーム上のボタン コントロールを選択します。
[プロパティ] ペインでイベント アイコン をクリックして、ボタンのイベントの一覧を表示します。
Click イベントを見つけてダブルクリックし、イベント ハンドラーを生成します。
この操作により、次のコードがフォームに追加されます。
private void btnAdd_Click(object sender, EventArgs e) { }
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click End Sub
このハンドラーに作成するコードにより、
txtName
テキスト ボックス コントロールで指定された名前を、lstNames
リスト ボックス コントロールに追加します。 ただし、名前の追加に 2 つの条件を設けます。指定された名前が空白であってはならず、名前が既に存在していてはなりません。次のコードでは、名前を
lstNames
コントロールに追加する方法を示します。private void btnAdd_Click(object sender, EventArgs e) { if (!string.IsNullOrWhiteSpace(txtName.Text) && !lstNames.Items.Contains(txtName.Text)) lstNames.Items.Add(txtName.Text); }
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click If Not String.IsNullOrWhiteSpace(txtName.Text) And Not lstNames.Items.Contains(txtName.Text) Then lstNames.Items.Add(txtName.Text) End If End Sub
アプリを実行する
イベントをコーディングしたので、F5 キーを押すか、メニューから [デバッグ]>[デバッグの開始] を選択して、アプリを実行できます。 フォームが表示され、テキスト ボックスに名前を入力し、ボタンをクリックすることによってそれを追加できます。
次のステップ
.NET Desktop feedback