【学習】WinFormsでLabelを使ってみよう(計算結果やメッセージを表示する)
これまでの学習では、
- TextBox で文字を入力する
- ボタンを押して処理を実行する
- Label に結果を表示する
という形でプログラムを動かしてきました。
しかし、Label の役割や、計算結果の表示方法をまとめて学んでいません。
テキストを表示する
という Label の基本を押さえましょう。
今回は Label(ラベル) を使って、2つの数値を足し算し、その結果を表示するアプリを作ります。
今日作るもの
TextBox に 2つの数値(例:100 と 50)を入力して 計算 ボタンを押すと、
100 + 50 = 150
のように、Label に計算結果が表示されます。数値以外を入力した場合は「数値を入力してください」と表示します。
ソリューションとプロジェクトを作る
Visual Studio で新しいプロジェクトを作ります。
- テンプレート: Windows Forms アプリ (.NET Framework)
- ソリューション名: LabelSample
- プロジェクト名: LabelDemo
作成すると Form1 が表示されます。
フォームに配置するコントロール
フォームに次のものを配置します。
| コントロール | 名前 |
|---|---|
| Label | num1Label |
| TextBox | num1TextBox |
| Label | num2Label |
| TextBox | num2TextBox |
| Button | calcButton |
| Label | resultLabel |
num1Label の Text を「数値1:」、num2Label の Text を「数値2:」、calcButton の Text を「計算」、resultLabel の Text を空にしておきます。
イベントを登録する
calcButton をダブルクリックすると、Click イベントのハンドラが自動作成されます。
その中で TextBox の入力値を int.TryParse で数値に変換し、足し算して resultLabel に表示するコードを書きます。
完成コード
using System;
using System.Windows.Forms;
namespace LabelDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void calcButton_Click(object sender, EventArgs e)
{
if (!int.TryParse(num1TextBox.Text, out int a))
{
resultLabel.Text = "数値1 に数値を入力してください";
return;
}
if (!int.TryParse(num2TextBox.Text, out int b))
{
resultLabel.Text = "数値2 に数値を入力してください";
return;
}
resultLabel.Text = $"{a} + {b} = {a + b}";
}
}
}
プログラムの流れ
TextBox に数値を入力
↓
計算ボタンをクリック
↓
int.TryParse で数値に変換
↓
変換に失敗したら「数値を入力してください」と表示
↓
成功したら足し算して resultLabel に表示
Label の役割
Label は、文字を表示するだけのコントロールです。ユーザーが編集することはありません。
| コントロール | 役割 | ユーザー操作 |
|---|---|---|
| TextBox | テキスト入力 | ユーザーが編集する |
| Label | テキスト表示 | プログラムで Text を更新する |
静的ラベルと動的ラベル
Label には 2 つの使い方があります。
| 種類 | 説明 | 例 |
|---|---|---|
| 静的ラベル | 設計時に Text を設定し、実行中は変更しない | 「数値1:」「合計:」など項目名 |
| 動的ラベル | プログラムで Text を更新する | 計算結果、メッセージ、進捗など |
今回の num1Label と num2Label は静的ラベル、resultLabel は動的ラベルです。
Text プロパティと文字列補間
Label の Text プロパティで、表示内容を取得・設定できます。
変数を埋め込むには $"" の文字列補間が便利です。
resultLabel.Text = $"{a} + {b} = {a + b}";
{a} や {a + b} の部分が、変数の値や式の結果に置き換わります。
int.TryParse とは
TextBox から取得した文字列を数値に変換するには int.TryParse を使います。
if (!int.TryParse(num1TextBox.Text, out int a))
{
resultLabel.Text = "数値1 に数値を入力してください";
return;
}
- 変換に成功したら
aに値が入り、trueを返す - 変換に失敗したら("abc" など)
falseを返す
数値以外が入力されたときのエラー処理に使えます。
重要ポイント
Label は、テキストを表示するためのコントロールです。
- Text プロパティ で表示内容を取得・設定する
- 静的ラベル … 項目名など、変更しない表示
- 動的ラベル … 計算結果やメッセージなど、プログラムで更新する表示
- $"" の文字列補間で、変数を埋め込んだ表示ができる
- int.TryParse で TextBox の入力を数値に変換し、計算結果を Label に表示できる
発展:Label のプロパティ
| プロパティ | 説明 |
|---|---|
| AutoSize | true のとき、テキストに合わせてサイズが自動調整される |
| ForeColor | 文字色 |
| Font | フォント(文字の種類・サイズ) |
発展アイデア
Label を使うと、次のようなものも作れます。
- 計算アプリ … 単価 × 数量の合計を表示(NumericUpDown と組み合わせると数値入力が楽)
- 進捗表示 … 処理の進み具合を「処理中…」「完了!」と表示(ProgressBar と組み合わせ)
- ステータスバー … フォーム下部に固定で状態を表示(StatusStrip)
- デジタル時計 … Timer で一定間隔ごとに Label に現在時刻を表示
Label は 結果表示の基本 です。Button、TextBox と組み合わせれば、実用的なアプリが作れます。


ディスカッション
コメント一覧
まだ、コメントがありません