在C#中,ProgressBar
組件用于顯示操作的進度
ProgressBar
控件和一個 Button
控件。BackgroundWorker
類來執行長時間運行的任務,并在任務進行過程中更新 ProgressBar
。以下是一個簡單的示例:
using System;
using System.ComponentModel;
using System.Threading;
using System.Windows.Forms;
namespace ProgressBarExample
{
public partial class Form1 : Form
{
private BackgroundWorker backgroundWorker;
public Form1()
{
InitializeComponent();
// 初始化 BackgroundWorker
backgroundWorker = new BackgroundWorker();
backgroundWorker.WorkerReportsProgress = true;
backgroundWorker.DoWork += BackgroundWorker_DoWork;
backgroundWorker.ProgressChanged += BackgroundWorker_ProgressChanged;
backgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted;
}
private void buttonStart_Click(object sender, EventArgs e)
{
// 啟動后臺任務
backgroundWorker.RunWorkerAsync();
}
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
// 這里執行長時間運行的任務
for (int i = 0; i <= 100; i++)
{
Thread.Sleep(50); // 模擬耗時操作
backgroundWorker.ReportProgress(i); // 更新進度
}
}
private void BackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
// 更新 ProgressBar 的值
progressBar1.Value = e.ProgressPercentage;
}
private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// 任務完成后的操作
MessageBox.Show("任務已完成!");
}
}
}
在這個示例中,我們創建了一個 BackgroundWorker
對象,用于在后臺執行長時間運行的任務。當任務進行過程中,我們通過調用 ReportProgress
方法來更新進度。然后,在 ProgressChanged
事件處理程序中,我們將 ProgressBar
的值設置為當前進度。最后,在任務完成后,我們在 RunWorkerCompleted
事件處理程序中顯示一條消息。