我有一个循环。迭代次数取决于用户的选择。我得到的是double的数字,但是进度条只接受int;
double progr = 100 / (listBox2.Items.Count * listBox4.Items.Count);
progressBar1.Value += progr; <-
最佳答案
如果您想使用进度条来显示 TotalCount_n 项的处理过程,您通常会使用以下语句:
progressBar1.Maximum = TotalCount_n;
progressBar1.Value = currentItem;
如果你有两个进程,比如 TotalCount_n 和 TotalCount_m,你可以这样写
progressBar1.Maximum = TotalCount_n * TotalCount_m;
progressBar1.Value = currentItem_n * TotalCount_m + currentItem_m;
如果你想用一个int计算一个百分比,你可以这样写:
int percentage = (currentItem * 100) / TotalCount_n;
如果你有一个显示百分比的进程条,那么你使用
//progressBar1.Maximum = 100; // set in the designer
progressBar1.Value = (currentItem * 100) / TotalCount_n;
如果你有一个随机最大值的processbar,你也可以这样写:
progressBar1.Value = (currentItem * progressBar1.Maximum) / TotalCount_n;
但是您需要注意,数字不会变得太高。因此,如果 TotalCount_n 和最大值均高于 65000,您将出现溢出,因为乘积 currentItem * progressBar1.Maximum 可能超过 2^32。
关于c# - ProgressBar 十进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23822547/