(cache) タイマ - C# フォーム しっかり入門
  1. 作例
  2. コード
  3. 解説

作例:時計

タイトルバーに時計を表示します。

コード

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

class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }
}

class Form1 : Form
{
    Timer timer = new Timer();  // タイマ

    public Form1()
    {
        timer.Interval = 1000;  // 更新間隔 (ミリ秒)

        // タイマ用のイベントハンドラを登録
        timer.Tick += new EventHandler(timer_Tick);

        timer.Start();  // タイマ ON
    }

    // Tick イベントのイベントハンドラ
    void timer_Tick(object sender, EventArgs e)
    {
        // 現在時を取得
        DateTime dateTime = DateTime.Now;

        // タイトルバーに現在次を表示
        this.Text = dateTime.ToLongTimeString();
    }
}

解説

一定時間置きに処理を繰り返し実行するのに,タイマ (timer) が使われます。
タイマを利用するには,Timer クラスのインスタンスを作成し,設定を行います。

System.Windows.Forms 名前空間
Timer クラス [MSDN]

タイマを提供します。

プロパティ
項目説明
bool Enabled有効
int Interval更新間隔 (ミリ秒)
イベント
項目説明
event EventHandler Tick一定時間が経過

Start メソッド

タイマを開始します。

void Start()

Stop メソッド

タイマを停止します。

void Stop()

タイマをスタートするには Start() メソッドを呼び出すか,Enabled プロパティに true を設定します。
同様に,タイマを停止するには Stop() メソッドを呼び出すか,Enabled プロパティに false を設定します。

タイマを有効にする前に,Interval プロパティにミリ秒単位で更新間隔を設定しておきます。
タイマが有効になると,Interval に指定された一定時間が経過する度に Tick という名前のイベントが発生します (時計の「チクタク」という音から)。
Tick イベントにイベントハンドラを登録しておけば,指定した時間置きに処理を実行することができます。

今回の作例では,最初の Tick イベントが発生するまで,タイトルバーに時計は表示されません。
フォーム起動時に直ちに時計を表示させるためには,フォームの Load イベントにも,タイマの Tick イベント用に用意したイベントハンドラを登録してみてはどうでしょう。
Load イベントは Tick と同じ EventHandler 型なので,問題なくコンパイルできます。

    // タイマ用のイベントハンドラを登録
    timer.Tick += new EventHandler(timer_Tick);

    // タイマ用のイベントハンドラをフォームにも登録
    this.Load += new EventHandler(timer_Tick);

System.Windows.Forms 名前空間
Form クラス [MSDN]

イベント
項目説明
event EventHandler Load読み込み
event EventHandler Shown最初の表示
event EventHandler Activatedアクティブ化
event EventHandler Deactivated非アクティブ化
2012-03-08 / 2012-03-08
↑top