所以,这似乎是一个常见的问题,但我似乎无法找到一种方法来做到这一点。我有一个 C# Form 应用程序,它发送到 imap 客户端并处理电子邮件。我希望在表单上显示一个格式为“08:45”(8 分 45 秒)的计时器,让用户知道自他们单击按钮开始该过程以来已经过了多长时间。
一旦我的过程明显结束,我希望计时器停止。
private void btn_ImportEmail_Click(object sender, EventArgs e)
{
this.timer = new System.Timers.Timer();
this.lblTimer = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize) (this.timer)).BeginInit();
this.timer.Elapsed += new System.Timers.ElapsedEventHandler(this.OnTimerElapsed);
//connect to email and download messages...
this.timer.Enabled = true;
this.timer.SynchronizingObject = this;
timer.Interval = 1000;
timer.Start();
for (int I = 0 ; I <= messages.count() - 1; I++)
{
//process emails
}
timer.EndInit();
}
private void timer1_Tick(object sender, EventArgs e)
{
lblTimer.Text = DateTime.Now.ToString("mm:ss");
}
private void OnTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
{
lblTimer.Text = DateTime.Now.ToString("mm:ss");
// lblTimer.Text = string.Format("{0:mm:ss}", DateTime.Now);
}