在C#中,可以使用事件綁定的技巧來實現進度條的更新。以下是一種常見的方法:
示例代碼如下:
using System;
using System.Threading;
using System.Windows.Forms;
namespace ProgressBarExample
{
public partial class Form1 : Form
{
public event EventHandler<int> UpdateProgress;
public Form1()
{
InitializeComponent();
UpdateProgress += UpdateProgressBar;
}
private void UpdateProgressBar(object sender, int value)
{
progressBar1.Value = value;
}
private void btnStart_Click(object sender, EventArgs e)
{
Thread thread = new Thread(DoWork);
thread.Start();
}
private void DoWork()
{
for (int i = 0; i <= 100; i++)
{
UpdateProgress?.Invoke(this, i);
Thread.Sleep(100); // 模擬耗時操作
}
}
}
}
在上面的示例中,我們創建了一個事件UpdateProgress用于更新進度條的數值。在DoWork方法中,我們使用委托調用UpdateProgress事件來更新進度條的數值。然后在btnStart_Click方法中啟動一個后臺線程來執行DoWork方法。
當后臺線程執行時,進度條會根據UpdateProgress事件的觸發來更新顯示。通過這種事件綁定的技巧,我們可以實現進度條的更新而不阻塞UI線程。