我需要做一个 25 分钟的计时器,它会在时间到期时关闭表单。在这种情况下,应该有一个显示这 25 分钟的进度条。我尝试这样:
private void Form2_Load(object sender, EventArgs e)
{
progressBar1.Maximum = 25 * 60 * 1000;
Timer MyTimer = new Timer();
MyTimer.Interval = (25 * 60 * 1000); // 25 mins
MyTimer.Tick += new EventHandler(MyTimer_Tick);
MyTimer.Start();
}
private void MyTimer_Tick(object sender, EventArgs e)
{
count++;
if (count <= 25 * 60 * 1000)
progressBar1.Value = count;
MessageBox.Show("The form will now be closed.", "Time Elapsed");
this.Close();
}
但是根据这段代码的结果,progressBar 什么都不显示。错误在哪里?并且progressBar可以垂直设置吗?
我提出这种变化:
没有计时器。使用异步等待。很短 :-)
一个没有计时器的例子。还需要注意的是,这里的时间不取决于调用次数,它只取决于时间。如果需要,您可以对其进行更多改进并使其更精确。
添加选项和其他东西来品尝,直到取消操作。