我需要一个标签,文本将在定时器一次打勾后更改。例如,计时器第1个刻度标签将显示“1个程序正在运行”,在第2个刻度标签中将显示“2个程序运行”在第3个刻度标签中将显示“3程序运行”等。 我是编程新手。任何帮助都会很棒。
答案 0 :(得分:3)
好吧,你需要维持一些状态。说实话,最简单的方法是捕获lambda表达式中的变量:
int count = 0;
timer.Tick += (sender, args) => {
count++;
label.Text = string.Format("{0} {1} running", count,
count == 1 ? "program" : "programs");
};
或者,您可以创建一个新类来维护该状态:
internal class ProgramCounterTimerHandler
{
private int count = 0;
private readonly Label label;
internal ProgramCounterTimerHandler(Label label)
{
this.label = label;
}
internal void ShowProgramCount(object sender, EventArgs e)
{
count++;
label.Text = string.Format("{0} {1} running", count,
count == 1 ? "program" : "programs");
}
}
Then you can use:
timer.Tick += new ProgramCounterTimerHandler(label).ShowProgramCount;
或者,如果您对班级中的实例变量感到满意,可以通过这种方式跟踪计数。
答案 1 :(得分:0)
你是否试过像这样处理计时器嘀嗒事件:
int counter = 1;
private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = counter + " program running";
label1.Refresh(); //not necessarily
counter++;
}