5

forループでいくつかのxmlファイルを処理しています。処理されたファイルの数に応じて、プログレスバーを表示したいと思います。ディレクトリに100個のファイルがあり、ファイルがループ内で1つずつ処理されていて、forループの現在のカウントに従ってプログレスバーを更新したいとします。
提案してください..

4

5 に答える 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 に答える