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