公式アカウントからの投稿が始まります

先ほどご質問させて頂いた件で1つ解決していなかったのですが質問のほうを閉じてしまいました.
なので,もう一度ご質問させて頂きます.

ic += 1;
//プログレスバーの設定
//最小値
int minimum = 0;
//最大値
int years = iYearE - iYearS;
int hours = iHourE-iHourS;
int iiMinute = iiMinuteE-iiMinuteS;

int Maximun = (years+1) * Maxmonth * Maxday * (hours+1) * (iiMinute+1);

progressBar1.Style = ProgressBarStyle.Continuous;
progressBar1.Minimum = minimum;
progressBar1.Maximum = Maximun;
progressBar1.Value = ic;
label8.Text = (ic / Maximun)*100 + "%処理中";
if (ic/Maximun==1)
{
label8.Text = "終了";

上記の様なプログラムを組んでプログレスバーを表示させているのですが,問題はラベルの中が
変動せずに,プログラスバーがすべてたまるまで0%で,たまった瞬間に100%になってしまいます.

どうすればラベルのほうの数値を徐々に大きくしていけるのでしょうか?

どなたかご教示お願いたします.

}

A 回答 (2件)

整数を整数で割るとき、除数が被除数より大きいので結果がゼロになってしまっているということなので、


label8.Text = (ic / Maximun)*100 + "%処理中";
を、
label8.Text = (100*ic) / Maximun + "%処理中";
に変えればいいのではないでしょうか。
    • good
    • 0

上記のコードをすべてfor文の中に入れるのでしたら無駄な計算が増えてしまうと思いますのでfor文の外に出したほうがいいと思います。


で、Application.DoEvents();を入れる必要があるのかなと思います。

このあたりを参考にされては。
http://dobon.net/vb/dotnet/programing/displaypro …
http://www.atmarkit.co.jp/fdotnet/dotnettips/136 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!