gpt4 book ai didi

c# - C#.net 中具有不同间隔的多个计时器

转载 作者:行者123 更新时间:2023-11-30 22:35:36 24 4
gpt4 key购买 nike

我想要输入不同时间间隔的不同计时器。例如,如果我输入 4,则创建 4 个计时器并在 4 个标签中显示时间,其中第一个计时器的时间在 1 秒内变化,第二个计时器的时间在 2 秒内变化,第三个计时器的时间在 3 秒内改变,4tn 定时器的时间在 4 秒内改变。这是我的代码,

        string input = textBox2.Text;
int n = Convert.ToInt32(input);
for (i = 1; i <= n; i++)
{

Timer timer = new Timer();
timer.Tick += new EventHandler(timer_Tick);
timer.Interval = (1000) * (i);


timer.Enabled = true;
timer.Start();



Label label = new Label();
label.Name = "label"+i;
label.Location = new Point(100, 100 + i * 30);
label.TabIndex = i;
label.Visible = true;


this.Controls.Add(label);

}
private void timer_Tick(object sender, EventArgs e)
{

label.Text = DateTime.Now.ToString();


}

但是我没有得到任何输出。我能做什么。我使用的是 Windows 应用程序。

最佳答案

我不明白 Timer 的 Tick 事件处理程序如何访问不在其范围内的动态标签。

尝试

        Label label = new Label();               
label.Name = "label"+i;
label.Location = new Point(100, 100 + i * 30);
label.TabIndex = i;
label.Visible = true;

Timer timer = new Timer();
timer.Tick += (s, e) => label.Text = DateTime.Now.ToString();
timer.Interval = (1000) * (i);


timer.Enabled = true;
timer.Start();

另一种选择是使用 Dictionary<Timer, Label>并在创建控件时将控件添加到此字典,并在计时器的滴答处理程序中使用字典检索其对应的 Label

关于c# - C#.net 中具有不同间隔的多个计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7396693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com