[英]C# Progress bar - can't wrap my head around it
我有一個程序可以循環訪問文件夾中的文件,在該文件名的其他位置創建一個新文件夾,然后在該文件夾中放置一個公用文件。 重復沖洗直到完成該文件夾中的內容(在列表框中列出)。
我決定要花哨並准備進度條。 我從概念上理解,對於每次迭代,我都將計數增加一個(到listbox.items.count
)。
我也知道DoWork
事件是進度條的重要組成部分,如何使兩者相互嚙合? 每次迭代我都將計數器傳遞給DoWork
嗎?
我只是缺少從我的主代碼循環到DoEvents計數器的橋梁。
如圖所示使用背景工:
BackgroundWorker worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += new DoWorkEventHandler(update_DoWork);
worker.ProgressChanged += new ProgressChangedEventHandler(update_ProgressChanged);
worker.RunWorkerAsync();
您需要一個ProgressChangedEventHandler。 然后,當您要更新進度條時(這將在DoWork方法中),您將需要使用ReportProgress。 此方法將調用ProgressChangedEventHandler。
int percentProgress = 10;
worker.ReportProgress(percentProgress)
ProgressChangedEventHandler的示例:
private void update_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
progressBar.Value = (e.ProgressPercentage);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.