【C#】WindowsFormsアプリで秒針が0に来た時にイベントを実行する

実行結果

タイマーコントロールの作成と設定

// タイマーオブジェクトを作成します
Timer timer = new Timer();

// タイマーのインターバルを1秒(1000ミリ秒)に設定します
timer.Interval = 1000;

// タイマーのTickイベントにTimer_Tickメソッドを関連付けます
timer.Tick += Timer_Tick;

// タイマーを開始します。これにより、Tickイベントが1秒ごとに発生します
timer.Start();

全体のコード

using System;
using System.Windows.Forms;

namespace JihoSample
{
    public partial class Form1 : Form
    {
        private Timer timer;

        public Form1()
        {
            InitializeComponent();

            InitializeTimer();
        }

        private void InitializeTimer()
        {
            // タイマーオブジェクトを作成します
            timer = new Timer();

            // タイマーのインターバルを1秒(1000ミリ秒)に設定します
            timer.Interval = 1000;

            // タイマーのTickイベントにTimer_Tickメソッドを関連付けます
            timer.Tick += Timer_Tick;

            // タイマーを開始します。これにより、Tickイベントが1秒ごとに発生します
            timer.Start();
        }

        private void Timer_Tick(object sender, EventArgs e)
        {
            HandleTimerTick();
        }

        private void HandleTimerTick()
        {
            // 現在の日時を取得します
            DateTime now = DateTime.Now;

            // 現在の秒数部分を取得します
            int nowSecond = now.Second;

            // コンソールに現在の秒数を表示します
            Console.WriteLine(nowSecond);

            // 現在の秒数が0の場合、タイマーイベントの発生と現在の日時をコンソールに表示します
            if (nowSecond == 0)
            {
                Console.WriteLine($"タイマーイベント {now}");
            }
        }
    }
}

ツールボックスのTimerコントロールから作成

using System;
using System.Windows.Forms;

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

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (DateTime.Now.Second == 0)
            {
                Console.WriteLine($"{DateTime.Now}");
            }
        }
    }
}

実行結果

長身が0の時に出力ウィンドウに表示されます