我有一个周期。迭代次数取决于用户的选择。我得到double的数量,但进度条只接受int;
double progr = 100 / (listBox2.Items.Count * listBox4.Items.Count);
progressBar1.Value += progr; <-
答案 0 :(得分:5)
如果您想使用进度条显示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;
如果您的进度条具有随机最大值,您还可以写:
progressBar1.Value = (currentItem * progressBar1.Maximum) / TotalCount_n;
但是你需要注意,数字不会太高。因此,如果TotalCount_n和最大值都高于65000,您将获得溢出,因为产品currentItem * progressBar1.Maximum可能超过2 ^ 32。
答案 1 :(得分:1)
double progr = 100 / (listBox2.Items.Count * listBox4.Items.Count);
progressBar1.Value += progr;
在这两行中检测到的问题:
double
double
分配给整数属性Value