我正在檢查是否可以在單擊按鈕時在文本框中顯示計時器。點擊按鈕時,定時器應該開始運行,並且在完成過程之後,我想停止定時器。以下是我的。我應該怎樣才能使它工作?窗口計時器在文本框中
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類。 –