【Winform】計算ゲームのチュートリアル

このチュートリアルでは、初学者向けにC#とWinFormを使ったシンプルなカウントダウンタイマーを作成します。このアプリケーションを通じて、タイマーコントロールの使い方、イベント処理、UI更新などを学べます。ユーザーは指定した時間をカウントダウンし、ゼロになるとアラートが表示されるシンプルなタイマーを体験できます。

1. プロジェクトのセットアップ

  1. Visual Studio を開き、新しい「Windows フォームアプリケーション (.NET Framework)」プロジェクトを作成します。
  2. プロジェクト名を「CountdownTimer」にします。
  3. Form1の名前をTimerFormに変更し、Textプロパティも「カウントダウンタイマー」に設定します。

2. 基本的なUIの配置

  1. Label コントロールをフォームに追加し、プロパティを次のように設定します:
    • Name: timeLabel
    • Text: “00:00"
    • Font: 大きなフォントサイズ(例: 24pt)
    • AutoSize: True
    • TextAlign: MiddleCenter
    • Dock: Top
  2. NumericUpDown コントロールを2つ追加し、それぞれ次のように設定します:
    • Name: minutesInput, Maximum: 60, Minimum: 0, Value: 1, Font: 12pt
    • Name: secondsInput, Maximum: 59, Minimum: 0, Value: 0, Font: 12pt
    • 両方のコントロールを並べて表示し、時間を設定できるようにします。
  3. Button コントロールを2つ追加し、それぞれ次のように設定します:
    • Name: startButton, Text: “スタート"
    • Name: stopButton, Text: “ストップ"
    • それぞれのDock: Bottom
  4. Timer コントロールをフォームに追加し、NamecountdownTimerに変更し、Intervalを1000ms(1秒)に設定します。

3. タイマーの実装

以下のコードを使って、カウントダウンタイマーのロジックを実装します。

using System;
using System.Windows.Forms;

namespace CountdownTimer
{
    public partial class TimerForm : Form
    {
        private int totalTime;

        public TimerForm()
        {
            InitializeComponent();
            InitializeTimer();
        }

        private void InitializeTimer()
        {
            startButton.Click += StartButton_Click;
            stopButton.Click += StopButton_Click;
            countdownTimer.Tick += CountdownTimer_Tick;
        }

        private void StartButton_Click(object sender, EventArgs e)
        {
            totalTime = (int)minutesInput.Value * 60 + (int)secondsInput.Value;
            countdownTimer.Start();
        }

        private void StopButton_Click(object sender, EventArgs e)
        {
            countdownTimer.Stop();
            timeLabel.Text = "00:00";
        }

        private void CountdownTimer_Tick(object sender, EventArgs e)
        {
            if (totalTime > 0)
            {
                totalTime--;
                TimeSpan timeSpan = TimeSpan.FromSeconds(totalTime);
                timeLabel.Text = timeSpan.ToString(@"mm\:ss");
            }
            else
            {
                countdownTimer.Stop();
                MessageBox.Show("時間になりました!", "アラート", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}

4. タイマーの開始と停止

  • スタート ボタンをクリックすると、指定した時間のカウントダウンが始まります。
  • ストップ ボタンをクリックすると、カウントダウンが停止し、タイマーがリセットされます。

5. タイマーの終了処理

時間がゼロになると、タイマーが停止し、アラートが表示されます。この機能により、ユーザーは指定した時間に注意を促すことができます。

まとめ

このチュートリアルでは、初学者がC#とWinFormを使ってシンプルなカウントダウンタイマーを作成することで、タイマーコントロール、イベント処理、UIの動的な更新などの基本的なプログラミング技術を学べます。実用的で日常的に使えるアプリケーションを作成することで、プログラミング学習の達成感が得られるでしょう。