forループでいくつかのxmlファイルを処理しています。処理されたファイルの数に応じて、プログレスバーを表示したいと思います。ディレクトリに100個のファイルがあり、ファイルがループ内で1つずつ処理されていて、forループの現在のカウントに従ってプログレスバーを更新したいとします。
提案してください..
質問する
18805 次
5 に答える
3
バックグラウンドワーカーを使用して100個のファイルを処理し、反復ごとにReportProgressを呼び出し、バックグラウンドワーカーのプロセス変更イベントにフックして、それに応じてプログレスバーを更新します。
詳細については、このチュートリアルを確認してください。
于 2012-09-27T09:11:44.913 に答える
3
特にイベントでBackgroundWorker
クラスを見てください。ProgressChanged
于 2012-09-27T09:11:55.547 に答える
2
ProgressBarコントロールと組み合わせてBackgroundWorkerを使用する必要があります。これが簡単な例です。
于 2012-09-27T09:11:59.573 に答える
0
for(int i=1;i<linecount;i++)
{
progressBar1.Value = i * progressBar1.Maximum / linecount; //show process bar counts
LabelTotal.Text = i.ToString() + " of " + linecount; //show number of count in lable
int presentage = (i * 100) / linecount;
LabelPresentage.Text = presentage.ToString() + " %"; //show precentage in lable
Application.DoEvents(); keep form active in every loop
}
于 2017-03-24T09:00:20.440 に答える
0
最小値と最大値を設定してから
Step
、メソッドでプロパティを使用しPerformStep
てProgressBarの値をインクリメントします。
progressBar1.Step = 1;
int part=someList.Count / 100;
....
....
//Inside the loop
if (loop_counter % part == 0)
{
progressBar1.PerformStep();
}
于 2020-11-10T14:48:51.477 に答える