Skip to content

第21章 Windowsフォームアプリの基本

この章では、C#でデスクトップアプリを作成するために、Windowsフォームアプリ の基本を学習します。

これまでの章では、主に次の種類のアプリを作成してきました。

コンソールアプリ
ASP.NET Core MVCによるWebアプリ

コンソールアプリでは、画面は黒いコンソール画面でした。

文字を入力する
Enterキーを押す
結果が文字で表示される

Webアプリでは、ブラウザーを使いました。

ブラウザーでURLにアクセスする
Controllerが処理する
ViewがHTMLを返す
ブラウザーに画面が表示される

この章からは、Windows上で動く画面アプリを作成します。

フォーム
ボタン
テキストボックス
ラベル
リスト

などを配置し、利用者がボタンをクリックしたときに処理が動くアプリを作ります。

この章の目的は、Windowsフォームアプリを深く作り込むことではありません。

まずは、次のことを理解することを目指します。

Windowsフォームアプリは画面部品を配置して作る
ボタンクリックなどのイベントで処理を書く
フォーム上の部品から値を取得できる
フォーム上の部品に結果を表示できる

後の章では、Oracle Databaseから取得した社員データを、Windowsフォームアプリの画面に表示します。


この章では、以下の画像を入れると理解しやすくなります。

図21-1 コンソールアプリ・Webアプリ・デスクトップアプリの違い
図21-2 Windowsフォームアプリのプロジェクト作成画面
図21-3 フォームデザイナー画面
図21-4 ツールボックスからLabelやButtonを配置する画面
図21-5 プロパティウィンドウでNameやTextを変更する画面
図21-6 ボタンクリックイベントを作成する画面
図21-7 社員情報入力アプリの完成例

画像を挿入する場合は、次のように書けます。

![Windowsフォームアプリのプロジェクト作成画面](images/21_winforms_project_create.png)

画像ファイルは、images フォルダにまとめると管理しやすくなります。

CSharpText/
├─ 21_winforms_basic.md
└─ images/
├─ 21_winforms_project_create.png
├─ 21_form_designer.png
├─ 21_toolbox_controls.png
├─ 21_property_window.png
└─ 21_employee_form.png

この章でできるようになること

Section titled “この章でできるようになること”

この章を終えると、次のことができるようになります。

  • Windowsフォームアプリとは何かを説明できる
  • Visual Studio 2022でWindowsフォームアプリを作成できる
  • フォームデザイナーの基本操作ができる
  • LabelTextBoxButton を配置できる
  • コントロールの NameText を変更できる
  • ボタンクリックイベントを作成できる
  • テキストボックスに入力された値を取得できる
  • ラベルに結果を表示できる
  • ListBox に複数のデータを表示できる
  • 簡単な入力チェックができる
  • Windowsフォームアプリがイベント駆動で動くことを説明できる

項目内容
開発環境Visual Studio 2022
プロジェクト種類Windows フォーム アプリ
対象フレームワーク.NET 8
プロジェクト名Chapter21_WinFormsBasic
DB接続この章ではまだ行わない

作業を始める前に、次の内容を確認してください。

  • Visual Studio 2022を起動できる
  • C#のクラスやメソッドをおおまかに読める
  • if 文を使える
  • List<T> を使える
  • 変数とプロパティの違いをおおまかに理解している
  • 第20章の内容をGitに提出済みである

21-1 デスクトップアプリとは?

Section titled “21-1 デスクトップアプリとは?”

コンソールアプリは、文字入力と文字表示を中心に動くアプリです。

入力してください
山田太郎
こんにちは、山田太郎さん

処理の流れも、基本的には上から順番です。

Mainメソッド開始
入力
処理
出力
終了

Webアプリは、ブラウザーからリクエストを送り、サーバー側で処理を行い、HTMLを返すアプリでした。

ブラウザー
Controller
View
ブラウザー

URLにアクセスしたり、フォームを送信したりして処理が動きます。


Windowsフォームアプリは、Windows上で動く画面アプリです。

利用者は、画面上の部品を操作します。

テキストボックスに入力する
ボタンをクリックする
リストから選択する
表を見る

Windowsフォームアプリでは、ボタンをクリックしたときなどに処理が実行されます。

画面が表示される
利用者がボタンをクリックする
クリックイベントが実行される
画面に結果が表示される

このように、利用者の操作をきっかけに処理が動く考え方を イベント駆動 と呼びます。


21-2 Windowsフォームアプリを作成する

Section titled “21-2 Windowsフォームアプリを作成する”

Visual Studio 2022を起動し、次の手順でプロジェクトを作成します。

1. 「新しいプロジェクトの作成」をクリックする
2. 「Windows フォーム アプリ」を選択する
3. 「次へ」をクリックする
4. プロジェクト名に Chapter21_WinFormsBasic と入力する
5. 保存場所を確認する
6. 「次へ」をクリックする
7. フレームワークで .NET 8.0 を選択する
8. 「作成」をクリックする

図21-2 挿入候補

Windowsフォームアプリのプロジェクトテンプレート選択画面を入れるとよいです。


プロジェクトを作成すると、フォームデザイナーが表示されます。

Form1

という名前の画面が表示されていれば成功です。

フォームは、Windowsアプリの画面そのものです。

Form
→ アプリの画面

まずは、何も配置せずに実行してみます。

1. Visual Studio上部の実行ボタンをクリックする
2. 空のフォームが表示される
3. 右上の×ボタンで閉じる

空のウィンドウが表示されれば、Windowsフォームアプリとして動作しています。

図21-3 挿入候補

空のフォームが表示されている画面を入れるとよいです。


21-3 フォームデザイナーを確認する

Section titled “21-3 フォームデザイナーを確認する”

フォームデザイナーは、画面部品を配置するための画面です。

ここに、ラベル、テキストボックス、ボタンなどを配置していきます。

Label
TextBox
Button
ListBox
ComboBox
DataGridView

この章では、まず次の部品を使います。

コントロール役割
Label文字を表示する
TextBox文字を入力する
Buttonクリックして処理を実行する
ListBox複数の項目を一覧表示する

画面左側または右側に、ツールボックス があります。

表示されていない場合は、次の操作で表示できます。

表示
→ ツールボックス

ツールボックスから、フォーム上に部品をドラッグして配置できます。

図21-4 挿入候補

ツールボックスからLabelやButtonを配置する画面を入れるとよいです。


配置した部品をクリックすると、プロパティウィンドウで設定を変更できます。

よく使うプロパティは次の通りです。

プロパティ意味
NameC#コードから使う名前
Text画面に表示される文字
Font文字の種類や大きさ
Size部品の大きさ
Location部品の位置

特に重要なのは、NameText です。

Name
→ プログラム内で使う名前
Text
→ 画面に表示される文字

図21-5 挿入候補

プロパティウィンドウで NameText を変更している画面を入れるとよいです。


21-4 Label、TextBox、Buttonを配置する

Section titled “21-4 Label、TextBox、Buttonを配置する”

まず、名前を入力してメッセージを表示する簡単なアプリを作成します。

フォームに次の部品を配置してください。

コントロールNameText
LabellblName氏名
TextBoxtxtName空欄
ButtonbtnShow表示
LabellblResult空欄

配置例:

氏名 [ ] [表示]
ここに結果を表示

lblResultText は、最初は空欄にしておきます。


たとえば、ボタンには次の2つを設定します。

Name: btnShow
Text: 表示

Text は、画面に表示される文字です。

表示

Name は、C#コードからそのボタンを扱うための名前です。

btnShow

この違いは非常に重要です。


21-5 ボタンクリックイベントを作成する

Section titled “21-5 ボタンクリックイベントを作成する”

イベントとは、利用者の操作などによって発生する出来事です。

代表的なイベントには、次のようなものがあります。

ボタンがクリックされた
テキストが変更された
フォームが読み込まれた
リストの選択が変わった

Windowsフォームアプリでは、イベントが発生したときに実行する処理を書きます。


ボタンクリックイベントを作成する

Section titled “ボタンクリックイベントを作成する”

フォームデザイナーで btnShow をダブルクリックしてください。

すると、次のようなメソッドが作成されます。

private void btnShow_Click(object sender, EventArgs e)
{
}

このメソッドは、btnShow がクリックされたときに実行されます。


btnShow_Click に次のコードを書きます。

private void btnShow_Click(object sender, EventArgs e)
{
string name = txtName.Text;
lblResult.Text = $"こんにちは、{name}さん";
}

実行して、テキストボックスに名前を入力し、表示ボタンをクリックしてください。

実行例:

氏名 [山田太郎] [表示]
こんにちは、山田太郎さん

TextBox の入力値は、Text プロパティから取得できます。

string name = txtName.Text;

Label に表示する文字も、Text プロパティへ代入します。

lblResult.Text = "表示したい文字";

ここでも、プロパティの考え方が使われています。


空欄のまま表示ボタンを押した場合

Section titled “空欄のまま表示ボタンを押した場合”

現在のコードでは、名前を入力しなくてもメッセージが表示されます。

こんにちは、さん

これは少し不自然です。

そこで、名前が空欄の場合はエラーメッセージを表示します。


btnShow_Click を次のように変更します。

private void btnShow_Click(object sender, EventArgs e)
{
string name = txtName.Text;
if (string.IsNullOrWhiteSpace(name))
{
lblResult.Text = "氏名を入力してください。";
return;
}
lblResult.Text = $"こんにちは、{name}さん";
}

string.IsNullOrWhiteSpace は、文字列が空欄または空白だけかどうかを判定します。

string.IsNullOrWhiteSpace(name)

空欄の場合は、メッセージを表示して return します。

return;

return によって、その後の処理を実行せずにメソッドを終了します。


入力値の前後の空白を取り除きたい場合は、Trim を使います。

string name = txtName.Text.Trim();

次のようにすると、前後の空白を除いた名前で処理できます。

private void btnShow_Click(object sender, EventArgs e)
{
string name = txtName.Text.Trim();
if (string.IsNullOrWhiteSpace(name))
{
lblResult.Text = "氏名を入力してください。";
return;
}
lblResult.Text = $"こんにちは、{name}さん";
}

21-7 社員情報入力アプリを作る

Section titled “21-7 社員情報入力アプリを作る”

次に、社員情報を入力して表示するアプリにします。

フォームに次の部品を配置してください。

コントロールNameText
LabellblEmployeeId社員ID
TextBoxtxtEmployeeId空欄
LabellblEmployeeName社員名
TextBoxtxtEmployeeName空欄
LabellblDepartmentName部署名
TextBoxtxtDepartmentName空欄
ButtonbtnAddEmployee追加
ListBoxlstEmployees空欄

配置例:

社員ID [ ]
社員名 [ ]
部署名 [ ]
[追加]
社員一覧
[ ]
[ ]
[ ]

Employee.cs を追加し、次のクラスを作成します。

namespace Chapter21_WinFormsBasic
{
public class Employee
{
public int EmployeeId { get; set; }
public string EmployeeName { get; set; } = "";
public string DepartmentName { get; set; } = "";
public string GetDisplayText()
{
return $"{EmployeeId}{EmployeeName}{DepartmentName}";
}
}
}

このクラスは、社員1人分の情報を表します。


Form1.cs を開き、フォームクラスの中に List<Employee> を用意します。

namespace Chapter21_WinFormsBasic
{
public partial class Form1 : Form
{
private List<Employee> _employees = new List<Employee>();
public Form1()
{
InitializeComponent();
}
}
}

_employees は、画面上で追加した社員情報を保持するリストです。


追加ボタンのイベントを作成する

Section titled “追加ボタンのイベントを作成する”

btnAddEmployee をダブルクリックし、クリックイベントを作成します。

private void btnAddEmployee_Click(object sender, EventArgs e)
{
}

まず、テキストボックスから入力値を取得します。

private void btnAddEmployee_Click(object sender, EventArgs e)
{
string employeeIdText = txtEmployeeId.Text.Trim();
string employeeName = txtEmployeeName.Text.Trim();
string departmentName = txtDepartmentName.Text.Trim();
}

社員IDは int として扱いたいため、int.TryParse を使います。

if (!int.TryParse(employeeIdText, out int employeeId))
{
MessageBox.Show("社員IDは整数で入力してください。");
return;
}

Windowsフォームアプリでは、メッセージ表示に MessageBox.Show を使えます。

MessageBox.Show("表示したいメッセージ");

社員名と部署名が空欄の場合もチェックします。

if (string.IsNullOrWhiteSpace(employeeName))
{
MessageBox.Show("社員名を入力してください。");
return;
}
if (string.IsNullOrWhiteSpace(departmentName))
{
MessageBox.Show("部署名を入力してください。");
return;
}

入力値に問題がなければ、Employee オブジェクトを作成します。

Employee employee = new Employee
{
EmployeeId = employeeId,
EmployeeName = employeeName,
DepartmentName = departmentName
};

作成した社員を _employees に追加します。

_employees.Add(employee);

ListBox に社員情報を表示します。

lstEmployees.Items.Add(employee.GetDisplayText());

btnAddEmployee_Click 全体は次のようになります。

private void btnAddEmployee_Click(object sender, EventArgs e)
{
string employeeIdText = txtEmployeeId.Text.Trim();
string employeeName = txtEmployeeName.Text.Trim();
string departmentName = txtDepartmentName.Text.Trim();
if (!int.TryParse(employeeIdText, out int employeeId))
{
MessageBox.Show("社員IDは整数で入力してください。");
return;
}
if (string.IsNullOrWhiteSpace(employeeName))
{
MessageBox.Show("社員名を入力してください。");
return;
}
if (string.IsNullOrWhiteSpace(departmentName))
{
MessageBox.Show("部署名を入力してください。");
return;
}
Employee employee = new Employee
{
EmployeeId = employeeId,
EmployeeName = employeeName,
DepartmentName = departmentName
};
_employees.Add(employee);
lstEmployees.Items.Add(employee.GetDisplayText());
txtEmployeeId.Clear();
txtEmployeeName.Clear();
txtDepartmentName.Clear();
txtEmployeeId.Focus();
}

TextBox の内容を消すには、Clear を使えます。

txtEmployeeId.Clear();

入力カーソルを指定した部品に移動するには、Focus を使います。

txtEmployeeId.Focus();

これにより、次の社員情報を続けて入力しやすくなります。


ListBox では、項目をクリックして選択できます。

選択されている位置は、SelectedIndex で取得できます。

int index = lstEmployees.SelectedIndex;

何も選択されていない場合、SelectedIndex-1 になります。


フォームに次のボタンを追加します。

コントロールNameText
ButtonbtnShowSelected選択した社員を表示

ボタンをダブルクリックして、クリックイベントを作成します。


_employeeslstEmployees は、同じ順番でデータを持っています。

そのため、SelectedIndex を使って社員を取り出せます。

private void btnShowSelected_Click(object sender, EventArgs e)
{
int index = lstEmployees.SelectedIndex;
if (index < 0)
{
MessageBox.Show("社員を選択してください。");
return;
}
Employee employee = _employees[index];
MessageBox.Show(employee.GetDisplayText());
}

この方法は、学習用としては分かりやすいです。

ただし、実務では画面表示とデータの対応をより安全に扱う方法を使うこともあります。

次章以降では、DataGridView を使って、一覧表示をより表形式に近い形で扱います。


21-9 イベント駆動の考え方を整理する

Section titled “21-9 イベント駆動の考え方を整理する”

コンソールアプリでは、基本的に上から順番に処理が進みました。

Main
入力
処理
表示

Windowsフォームアプリでは、フォームが表示された後、利用者の操作によって処理が実行されます。

フォームを表示
利用者が入力する
ボタンをクリックする
クリックイベントが実行される

Windowsフォームアプリでは、次のようにイベントごとにメソッドを書きます。

private void btnAddEmployee_Click(object sender, EventArgs e)
{
// 追加ボタンがクリックされたときの処理
}
private void btnShowSelected_Click(object sender, EventArgs e)
{
// 選択した社員を表示ボタンがクリックされたときの処理
}

どのタイミングで処理が実行されるかを意識することが重要です。


フォーム上の部品には Name を付けます。

txtEmployeeName
btnAddEmployee
lstEmployees

コードでは、その名前を使って部品にアクセスします。

txtEmployeeName.Text
btnAddEmployee_Click
lstEmployees.Items.Add(...)

つまり、Windowsフォームアプリでは、画面上の部品とC#コードが強く結びついています。


Windowsフォームアプリにも Program.cs があります。

中には、アプリを起動するための処理が書かれています。

namespace Chapter21_WinFormsBasic
{
internal static class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
}

Application.Run(new Form1()); によって、Form1 が表示されます。


Form1.cs には、フォームの処理を書きます。

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}

ボタンクリックイベントなどは、通常このファイルに書きます。


フォームに配置した部品の情報は、Form1.Designer.cs に自動生成されます。

通常、このファイルを手で直接編集する必要はありません。

Form1.cs
→ 自分で処理を書く
Form1.Designer.cs
→ Visual Studioが画面部品の情報を自動生成する

誤って Designer.cs を大きく変更すると、フォームデザイナーが正常に表示されなくなることがあるため注意してください。


つまずき原因対応
ツールボックスが見つからない表示されていない「表示」→「ツールボックス」を選ぶ
プロパティウィンドウが見つからない表示されていない「表示」→「プロパティ ウィンドウ」を選ぶ
ボタンをダブルクリックしてもイベントができないデザイナーではなくコードを開いているFormのデザイナー画面を開く
txtName が見つからないNameを変更していないTextではなくNameを確認する
画面に表示される文字が変わらないTextではなくNameを変更している表示文字はTextを変更する
入力値が取得できないTextBoxのNameが違うtxtEmployeeName.Text などを確認する
数値変換でエラーになるint.Parse を使っているint.TryParse を使う
ListBoxに表示されないItems.Add を呼んでいないlstEmployees.Items.Add(...) を確認する
選択していないのに表示しようとしてエラーになるSelectedIndex-1選択チェックを行う
Designer.csを編集して壊れる自動生成ファイルを手で変更している基本的にForm1.csへ処理を書く

次の項目について、自分で説明できるか確認してください。

  • Windowsフォームアプリとは何かを説明できる
  • コンソールアプリ、Webアプリ、デスクトップアプリの違いを説明できる
  • Windowsフォームアプリのプロジェクトを作成できる
  • フォームデザイナーを開ける
  • LabelTextBoxButton を配置できる
  • コントロールの NameText の違いを説明できる
  • ボタンクリックイベントを作成できる
  • TextBox.Text から入力値を取得できる
  • Label.Text に結果を表示できる
  • MessageBox.Show でメッセージを表示できる
  • ListBox に項目を追加できる
  • SelectedIndex を使って選択項目を確認できる
  • Windowsフォームアプリがイベント駆動で動くことを説明できる

研修の進め方によっては、隣の人または近くの人と説明確認を行います。

次の内容を、自分の言葉で説明してください。

  1. Windowsフォームアプリは、コンソールアプリと何が違いますか。
  2. Windowsフォームアプリは、Webアプリと何が違いますか。
  3. Name プロパティと Text プロパティの違いは何ですか。
  4. ボタンクリックイベントは、いつ実行されますか。
  5. txtEmployeeName.Text は何を表していますか。
  6. MessageBox.Show はどのようなときに使えますか。
  7. ListBox はどのような画面部品ですか。
  8. SelectedIndex-1 の場合、何を意味しますか。
  9. Windowsフォームアプリがイベント駆動であるとは、どういう意味ですか。

この章の演習課題に取り組みます。

制限時間は 90分 です。

時間内にすべて完成しなくても構いません。
できたところまでを保存し、Gitに提出してください。


課題21-1 Windowsフォームアプリを作成する

Section titled “課題21-1 Windowsフォームアプリを作成する”

Windowsフォームアプリのプロジェクトを作成してください。

条件:

  • プロジェクト名は Chapter21_WinFormsBasic とする
  • フレームワークは .NET 8.0 を選択する
  • 初期状態で実行し、空のフォームが表示されることを確認する

課題21-2 名前表示アプリを作成する

Section titled “課題21-2 名前表示アプリを作成する”

氏名を入力し、表示ボタンを押すとメッセージが表示されるアプリを作成してください。

配置するコントロール:

コントロールNameText
LabellblName氏名
TextBoxtxtName空欄
ButtonbtnShow表示
LabellblResult空欄

実行例:

こんにちは、山田太郎さん

条件:

  • ボタンクリックイベントを作成する
  • txtName.Text から入力値を取得する
  • lblResult.Text に結果を表示する

課題21-3 入力チェックを追加する

Section titled “課題21-3 入力チェックを追加する”

課題21-2に、空欄チェックを追加してください。

条件:

  • 氏名が空欄の場合は "氏名を入力してください。" と表示する
  • string.IsNullOrWhiteSpace を使う
  • 入力値の前後の空白を Trim で取り除く

課題21-4 社員情報入力画面を作成する

Section titled “課題21-4 社員情報入力画面を作成する”

社員ID、社員名、部署名を入力する画面を作成してください。

配置するコントロール:

コントロールNameText
LabellblEmployeeId社員ID
TextBoxtxtEmployeeId空欄
LabellblEmployeeName社員名
TextBoxtxtEmployeeName空欄
LabellblDepartmentName部署名
TextBoxtxtDepartmentName空欄
ButtonbtnAddEmployee追加
ListBoxlstEmployees空欄

条件:

  • 見やすい位置に配置する
  • 各コントロールの Name を正しく設定する

課題21-5 Employeeクラスを作成する

Section titled “課題21-5 Employeeクラスを作成する”

社員情報を表す Employee クラスを作成してください。

プロパティ:

プロパティ名
EmployeeIdint
EmployeeNamestring
DepartmentNamestring

条件:

  • Employee.cs を作成する
  • GetDisplayText メソッドを作成する
  • 表示例は 1001:山田太郎(営業部) とする

課題21-6 社員情報をListBoxに追加する

Section titled “課題21-6 社員情報をListBoxに追加する”

追加ボタンを押したとき、入力された社員情報を ListBox に追加してください。

条件:

  • 社員IDは int.TryParse でチェックする
  • 社員名が空欄ならメッセージを表示する
  • 部署名が空欄ならメッセージを表示する
  • Employee オブジェクトを作成する
  • List<Employee> に追加する
  • lstEmployees.Items.Add で画面に表示する

社員情報を追加した後、入力欄をクリアしてください。

条件:

  • txtEmployeeId.Clear() を使う
  • txtEmployeeName.Clear() を使う
  • txtDepartmentName.Clear() を使う
  • 最後に txtEmployeeId.Focus() を呼び出す

課題21-8 選択した社員を表示する

Section titled “課題21-8 選択した社員を表示する”

ListBox で選択した社員を、メッセージボックスで表示してください。

条件:

  • btnShowSelected ボタンを追加する
  • SelectedIndex を使う
  • 何も選択されていない場合はメッセージを表示する
  • 選択されている場合は、該当する Employee を取得して表示する

課題21-9 社員IDの重複チェックを追加する

Section titled “課題21-9 社員IDの重複チェックを追加する”

同じ社員IDの社員を追加できないようにしてください。

条件:

  • _employees の中に同じ社員IDがあるか確認する
  • Any を使ってもよい
  • 重複している場合は "同じ社員IDが既に登録されています。" と表示する

例:

bool exists = _employees.Any(employee => employee.EmployeeId == employeeId);

課題21-10 部署名で絞り込み表示する

Section titled “課題21-10 部署名で絞り込み表示する”

部署名を入力し、その部署の社員だけを ListBox に表示してください。

条件:

  • 部署検索用の TextBoxButton を追加する
  • Where を使って部署名で絞り込む
  • ListBox を一度クリアしてから検索結果を表示する
  • 検索結果が0件の場合はメッセージを表示する

課題が終わったら、できたところまでをGitに提出します。

Terminal window
git status
git add .
git commit -m "Chapter21 Windowsフォームアプリの基本"
git push

Gitの操作でエラーが出た場合は、自己判断で同じ操作を繰り返さず、講師に確認してください。


  • Windowsフォームアプリを作成できている
  • フォームを実行できている
  • Label、TextBox、Buttonを配置できている
  • コントロールのNameを適切に設定している
  • ボタンクリックイベントを作成している
  • テキストボックスの入力値を取得できている
  • ラベルに結果を表示できている
  • 入力チェックを行っている
  • Employeeクラスを作成している
  • Listを使っている
  • ListBoxに社員情報を表示している
  • 選択された社員を取得できている
  • インデントが整っている
  • Gitにcommitしている
  • Gitにpushしている

この章では、Windowsフォームアプリの基本を学習しました。

この章で学んだ主な内容は次の通りです。

  • Windowsフォームアプリは、Windows上で動くデスクトップアプリである
  • フォームはアプリの画面を表す
  • ツールボックスから画面部品を配置できる
  • プロパティウィンドウで NameText を変更できる
  • Name はC#コードから使う名前である
  • Text は画面に表示される文字である
  • ボタンをクリックしたときの処理は、クリックイベントに書く
  • TextBox.Text で入力値を取得できる
  • Label.Text で表示文字を変更できる
  • MessageBox.Show でメッセージを表示できる
  • ListBox に複数の項目を表示できる
  • SelectedIndex で選択された位置を取得できる
  • Windowsフォームアプリは、利用者の操作をきっかけに処理が動くイベント駆動のアプリである
  • 画面で入力されたデータを Employee オブジェクトとして扱える
  • List<Employee> を使って、複数の社員情報を管理できる

次章では、DataGridViewで一覧を表示する 方法を学習します。

ListBox よりも表形式のデータ表示に適した DataGridView を使い、社員一覧を列ごとに表示します。
後の章では、この DataGridView にOracle Databaseから取得した社員一覧を表示します。