作例:時計
タイトルバーに時計を表示します。
コード
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 | 非アクティブ化 |
スポンサードリンク