Windowsフォーム(C#3.0、.net 3.5 SP1、VS2008 SP1、Vista)にタイマーがあり、停止した後でも機能するようです。コードは次のとおりです。
using System;
using System.Windows.Forms;
namespace TestTimer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
StartTimer();
}
private DateTime deadline;
private void StartTimer()
{
deadline = DateTime.Now.AddSeconds(4);
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
int secondsRemaining = (deadline - DateTime.Now).Seconds;
if (secondsRemaining <= 0)
{
timer1.Stop();
timer1.Enabled = false;
MessageBox.Show("too slow...");
}
else
{
label1.Text = "Remaining: " + secondsRemaining.ToString() + (secondsRemaining > 1 ? " seconds" : " second");
}
}
}
}
timer1.Stop()が呼び出された後でも、画面上でMessageBoxを受信し続けます。escを押すと止まります。ただし、メッセージボックスが1つだけ表示されると思っていました...他に何をすればよいですか?timer1.Enabled = falseを追加しても、動作は変わりません。
ありがとう