ProgressBar十进制值

Kon*_*hov 1 .net c# winforms

我有一个周期.迭代次数取决于用户的选择.我得到double的数量,但进度条只接受int;

double progr = 100 / (listBox2.Items.Count * listBox4.Items.Count);
progressBar1.Value += progr; <-
Run Code Online (Sandbox Code Playgroud)

use*_*107 5

如果要使用进度条显示TotalCount_n项的处理,通常使用以下语句:

progressBar1.Maximum = TotalCount_n;
progressBar1.Value = currentItem;
Run Code Online (Sandbox Code Playgroud)

如果你有两个进程,比如TotalCount_n和TotalCount_m,你可以写

progressBar1.Maximum = TotalCount_n * TotalCount_m;
progressBar1.Value = currentItem_n * TotalCount_m + currentItem_m;
Run Code Online (Sandbox Code Playgroud)

如果你想用int计算一个百分比,你可以写:

int percentage = (currentItem * 100) / TotalCount_n;
Run Code Online (Sandbox Code Playgroud)

如果您有一个显示百分比的流程栏,那么您可以使用

//progressBar1.Maximum = 100; // set in the designer
progressBar1.Value = (currentItem * 100) / TotalCount_n;
Run Code Online (Sandbox Code Playgroud)

如果你有一个随机最大值的进程条,你也可以写:

progressBar1.Value = (currentItem * progressBar1.Maximum) / TotalCount_n;
Run Code Online (Sandbox Code Playgroud)

但是你需要注意,数字不会太高.因此,如果TotalCount_n和最大值都高于65000,您将获得溢出,因为产品currentItem*progressBar1.Maximum可能超过2 ^ 32.