Hye,我是C#的新手,只想手动运行一个计时器!所以我只是想知道我在代码中做错了什么。我只需要在我的计时器中显示一条简单的消息!我的代码是:
public partial class Form1 : Form
{
System.Timers.Timer time;
public Form1()
{
InitializeComponent();
time = new System.Timers.Timer();
time.Interval = 10;
time.Enabled = true;
time.Start();
}
private void time_Tick(object e, EventArgs ea)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine(i);
}
}
}
如果我做错了,请告诉我,提前谢谢!
答案 0 :(得分:4)
您忘了听Elapsed
事件。添加:
time.Elapsed += new ElapsedEventHandler(time_Tick);
计时器的初始化,它应该在计时器结束时调用回调函数(在10ms时刻)
另请注意,回调函数将每 10毫秒调用
如果您希望它停止运行,请在回调函数中添加time.Stop();
。
答案 1 :(得分:1)
<强>编辑:强>
使用课程System.Windows.Forms.Timer
代替System.Timers.Timer
可能更好。在那里,您可以调用您的功能并访问您的文本框。
否则,您将通过尝试访问txt
中的文本框time_Tick
来收到InvalidOperationException。
您不需要为增加值i
设置循环。只需重新启动计时器并设置新值。你现在正在做的是等待 ONE 打勾(持续1000毫秒),然后开始循环。
例如,这可能是您的方法:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private int i = 0;
private Timer time;
public Form1()
{
InitializeComponent();
time = new Timer();
time.Tick += time_Tick;
time.Interval = 1000;
time.Start();
}
private void time_Tick(object e, EventArgs ea)
{
if (i < 100)
{
txt.Text = i.ToString();
i++;
time.Start();
}
}
}
}