Windows Forms アプリケーション: ボタンを使用した表示アプリの解説


概要

この文書は、C#のWindows Formsアプリケーションで、ボタンをクリックするとラベルに文字を表示する簡易なプログラムについて解説します。


コード全体

using System;
using System.Drawing;
using System.Windows.Forms;

namespace InheSample
{
    public partial class Form1 : Form
    {
        Button attackButton;
        Label statusLabel;

        public Form1()
        {
            InitializeComponent();

            attackButton = new Button();
            attackButton.Text = "攻撃!";
            attackButton.Location = new Point(50, 50);
            attackButton.Size = new Size(100, 50);
            attackButton.Click += AttackButtonClick;

            Controls.Add(attackButton);

            statusLabel = new Label();
            statusLabel.Location = new Point(100, 100);
            statusLabel.Text = "準備完了";

            Controls.Add(statusLabel);
        }

        private void AttackButtonClick(object sender, EventArgs e)
        {
            statusLabel.Text = "攻撃した";
        }
    }
}

各セクションの解説

1. 名前空間とクラスの宣言

コード

using System;
using System.Drawing;
using System.Windows.Forms;

namespace InheSample
{
    public partial class Form1 : Form
  • using System;: 基本的なC#の機能を利用するための名前空間。
  • using System.Drawing;: グラフィックス関連の型やクラスを利用するための名前空間。
  • using System.Windows.Forms;: Windows Formsアプリを作成するために必要。
  • namespace InheSample: コードが属する名前空間。コードの重複を避けるために利用します。
  • public partial class Form1 : Form: このクラスは「Form」クラスを継承したサブクラスです。

2. メンバ変数の宣言

コード

Button attackButton;
Label statusLabel;
  • Button attackButton;: ボタンコントロールを表示するための変数。
  • Label statusLabel;: ラベルに文字を表示するための変数。

3. コンストラクタ

コード

public Form1()
{
    InitializeComponent();

    attackButton = new Button();
    attackButton.Text = "攻撃!";
    attackButton.Location = new Point(50, 50);
    attackButton.Size = new Size(100, 50);
    attackButton.Click += AttackButtonClick;

    Controls.Add(attackButton);

    statusLabel = new Label();
    statusLabel.Location = new Point(100, 100);
    statusLabel.Text = "準備完了";

    Controls.Add(statusLabel);
}
  1. InitializeComponent();
    • フォームの基本構造を初期化する処理を呼び出します。
  2. ボタンのタイトルとイベントの設定
    • ボタンを作成し、表示する文字を「攻撃!」に設定。
    • 位置は(50, 50)に設定。サイズは(100, 50)。
    • クリック時に呼ばれるメソッドをAttackButtonClick に指定。
  3. ボタンの追加
    • Controls.Add(attackButton); でボタンをフォームに追加。
  4. ラベルの位置を設定し、追加
    • statusLabel.Location = new Point(100, 100); でラベルの位置を(100, 100)に設定。
    • statusLabel.Text = "準備完了"; で初期文字を設定。
    • Controls.Add(statusLabel); でラベルをフォームに追加。

4. イベントハンドラー

コード

private void AttackButtonClick(object sender, EventArgs e)
{
    statusLabel.Text = "攻撃した";
}
  • ボタンがクリックされたときに呼ばれるメソッド。
  • statusLabel.Text = "攻撃した";で、ラベルに表示される文字を「攻撃した」に設定します。

動作の流れ

  1. フォームが初期化され、ボタンとラベルが表示される。
  2. ユーザーが「攻撃!」ボタンをクリックする。
  3. イベントハンドラーAttackButtonClickが実行され、ラベルに「攻撃した」と表示される。