visual studio 2010-C#在Timer Tick中运行相同的MessageBox 2次
本文关键字:MessageBox 2次 运行 2010-C# studio Timer Tick visual | 更新日期: 2023-09-27 18:01:08
我用C#从php读取时间。当时间相等时,我必须在注销窗口之前显示MessageBox。但当我运行程序时,它会显示相同的MessageBox 2次。我只想在注销前显示MessageBox 1一次。我设定Interval是30000。怎么做?这是我的代码
private void timer1_Tick(object sender, EventArgs e)
{
bool showingBox = false;
timer1.Start();
WebClient client = new WebClient();
Stream stream = client.OpenRead("http://172.22.22.20/time.php");
StreamReader reader = new StreamReader(stream);
String content = reader.ReadToEnd();
//textBox1.Text = content;
if (showingBox) return;
showingBox = true;
try
{
if (content == "08:00")
{
MessageBox.Show(new Form() { TopMost = true }, "11111"); // This will show 2 Message Box when time = 08.00
}
}
finally
{
showingBox = false;
}
if (content == "08:05")
{
ExitWindowsEx(4, 0);
}
timer1.Enabled = false;
}
}
}
我不知道我是否理解你的问题,但可能是你启动了两次计时器吗?据我所见,你确实在你的timer_tick方法中再次启动了计时器
private void timer1_Tick(object sender, EventArgs e)
{
bool showingBox = false;
timer1.Start(); // <-- second time startet.
为什么使用timer1.Start((在timer1_Tick Event中?
我删除了timer1.Start((,但它也显示了两次消息框。我这样更改代码flag=true必须在显示消息框之前运行。现在它工作了!!。
if (content == "10:09")
{
if (!flag)
{
flag = true;
MessageBox.Show(new Form() { TopMost = true }, "11111" +flag);
}
}