プログレスバーがありますが、forループからの値を等しく更新したいのですが、どうすれば等しいデータを更新できますか?
たとえば、ループのカウントが10の場合、またはカウントが1000の場合、これを自動化するにはどうすればよいですか?
参考までに、プログレスバーの最小値は0で、最大値は100です。
プログレスバーの最大値をデータサイズに合わせて調整するか、それに応じてスケーリングすることができます。
for (int i = 0; i < count; i++) {
// do something
progressBar1.Value = i * progressBar1.Maximum / count;
Application.DoEvents();
}
現在の値(xと呼びましょう)を最大値で割り、その結果に100を掛けます。
double progress = (x / max) * 100;
ただし、xとmaxがintの場合、浮動小数点除算ではなく整数除算を実行することになりますので注意してください。その場合、一方または両方をダブルまたはフロートにキャストする必要があります。