C#入門 最簡単プログラミング5 timerの使い方

2019年3月9日

C#入門の最簡単プログラミングの5回目はtimerです。このあたりからちょっと難しくなるので自身のない方は以前のコードも復習しておいてください。

C#入門 最簡単プログラム

それでは始めましょう

1 timerとは

計測器の制御をやる場合一定時間で測定を繰りかすケースがほとんどです。この場合はtimer機能を使います。timer機能をONにするとtimer関数に書かれている命令が一定時間ごとに繰り返されます。

プログラムにタイマーを追加する場合は、まずデザイナー画面でツールボックスのコンポーネント内にあるTimerをフォームにドラッグアンドドロップします。

デザイナーの下部にTimerが表示されてTimer1と自動で名前が付きます。Timer1をダブルクリックすると画面がエディタに切り替わり、カーソルがprivate void timer1_Tick(object sender, EventArgs e)の下に移動しますので、一定時間に行いたい命令を書きます。

例えば

        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToString();
        }

のように書くと一定時間にlabel1に現在時刻が表示されます。DateTime.Now()は現在時刻を出力する関数です。

次にTimerが起動するトリガーをbutton1_Clickの中に書きます。

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 5000; //ミリ秒で書ます
            timer1.Enabled = true;
        }

timer1.Intervalはtimer1_Tickの中の命令を実行する間隔です。ミリ秒で指定します。timer1.Enableをtrue(真)にするとTimerの動作が開始します。

2 サンプルコードの実行

デザイナー画面でボタンをダブルクリックし、カーソルが移動するbutton1_Clickと、Timerをダブルクリックしカーソルが移動するtimer1_Tickの中にそれぞれ以下のコードを書きます。

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 5000;
            timer1.Enabled = true;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToString();
        }

追加できたら開始ボタンを押してプログラムを実行します。

button1を押すと5秒おきに時刻が更新される

これはもうデジタル時計ですね。Timer1.Intervalの数値を変えると更新時間を変えることができます。またTimer1.Intervalの値はTimer要素のプロパティに事前に書き込むことができます。

3 まとめ

Timerの使い方は他の要素とは少し感覚が異なるので、よく理解するには何度か練習が必要かもしれません。数値を変えていろいろと試してください。

おまけ

上のサンプルプログラムではTimerを動かすことしかできませんでしたが、次のように書けばボタンを押すたびにTimerをON、OFFすることができます。

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 5000;

            if (timer1.Enabled == false)
            {
                timer1.Enabled = true;
            }
            else
            {
                timer1.Enabled = false;
            }
        }

関連記事

C#入門 最簡単プログラム