任何人都可以帮我在Windows窗体C3应用程序中停止我的计时器吗?我使用设计器在表单中添加了计时器,间隔设置为1000;按钮点击后等待5秒钟后我想做一些动作。请检查代码并告知我。现在的问题是我无限地获得MessageBox2并且永远不会让计时器停止。
static int count;
public Form1()
{
InitializeComponent();
timer1.Tick += timer1_Tick;
}
public void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
while(count>5)
{
....dosome actions...
}
}
private void timer1_Tick(object sender, EventArgs e)
{
count1++;
MessageBox.Show("Messagebox2");
if (count1 == 5)
{
//timer1.Enabled = false; timer1.Stop();
((System.Timers.Timer)sender).Enabled = false;
MessageBox.Show("stopping timer");
}
}
答案 0 :(得分:2)
我会将count
无用,只需使用timer 1 interval
属性并将您的操作放入timer1_Tick
事件中。
public void button1_Click(object sender, EventArgs e)
{
timer1.Interval = 5000;
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
MessageBox.Show("stopping timer");
// Your other actions here
}
答案 1 :(得分:0)
您正在递增count1
并检查count
。
while(count1 > 5)
{
...dosome actions...
}
答案 2 :(得分:0)
你使用哪个计时器?因为C#支持来自两个不同命名空间的类Timer。一个来自Forms,另一个来自System.Timers。我建议你使用另一个 - System.Timers.Timer。
Timer t = new Timer(20000); // created with 20seconds
t.Enabled = true; // enables firing Elapsed event
t.Elapsed += (s, e) => {
\\do stuff
};
t.Start();
在这个简短的代码中,您可以看到如何创建和启用计时器。通过注册Elapsed事件,您可以明确说明在经过一段时间后该怎么做。这只做了一次。当然,在达到限制之前用户点击按钮需要进行一些更改。但这在很大程度上取决于您所要求的行为的行为。