private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
listBox1.Items.Add("First Item");
for (int i = 0; i < 1000;i++ )
toolStripProgressBar1.Value += 1;
Application.DoEvents();
Thread.Sleep(5000);
listBox1.Items.Add("Second Item");
}
private void timer1_Tick(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "Please, wait...";
//через некоторое время таймер остановится, код опустил
}
本质上,我只想模拟应用程序中的轻微延迟。在将第一个元素添加到列表框之前,我启动了一个计时器,其中显示了一条简单的消息,ala“等待几秒钟”,因此它要么仅在应用程序休眠 5 秒后启动,要么启动,但是“滴答”不成功。
对于初学者,你应该仔细阅读定时器是如何工作的,因为现在,从代码来看,你没有这个理解。
由于某种原因,在计时器开始之前应该显示“请稍候”
timer1_Tick()的代码在 中,而应该在滴答声中的代码位于 中button1_Click()。根本不需要延迟,因为您已经有了计时器!架构应如下所示:
它应该是这样的:
或者,您可以有两个计时器来摆脱不明显的依赖性“计时器间隔 * 最大进度条 == 毫秒延迟”。第一个计时器每 100 毫秒计时一次并增加进度条。第二个计时器在 5 秒后触发,停止两个计时器并添加/更新记录。