簡體   English   中英

C#進度欄-無法將其包圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM