我正在检查是否可以在单击按钮时在文本框中显示计时器。点击按钮时,定时器应该开始运行,并且在完成过程之后,我想停止定时器。以下是我的。我应该怎样才能使它工作?窗口计时器在文本框中
public partial class MyClass: Form
{
public MyClass()
{
InitializeComponent();
InitializeTimer();
}
private void InitializeTimer()
{
this.timer1.Interval = 1000;
this.timer1.Tick += new EventHandler(timer1_Tick);
// don't start timer until user clicks Start
}
private void timer1_Tick(object sender, EventArgs e)
{
processingMessageTextBox.Invoke(new MethodInvoker(delegate { processingMessageTextBox.Text = "show running time after click"; }));
}
private void myButton_Click(object sender, EventArgs e)
{
this.timer1.Start();
doSomeTimeCOnsumingWork();
this.timer1.Stop();
}
}
请建议。
什么不起作用? – LokiSinclair
您能否提供有关过程的更多信息,以及您想要在文本框中显示的内容?到目前为止,您的代码看起来是有效的,但所有会发生的是每个计时器滴答,文本框文本将被替换为相同的字符串。 –
另外,您正在GUI线程上调用doSomeTimeConsumingWork(),这将导致GUI在doSomeTimeConsumingWork()返回之前变得无响应。由timer1_Tick方法排队的调用将在myButton_Click方法后面等待。你应该调查BackgroundWorker类。 –