基于列表框选择的增量进度条

Increment Progress Bar Based off ListBox Selection

我有一个进度条,它会在每个进程完成后递增。我有一个包含 10 个可能选项的列表框。例如,如果只选择了 2 个项目,我如何编写代码以确保进度条仍会达到 100%?这就是我一直在做的,但这只有在选择了所有 10 个项目时才有效..

if (ListBox1.SelectedItems.Contains("1"))
{
  backgroundworker.ReportProgress(5);
  //Do This
  backgroundworker.ReportProgress(10);
}
if (ListBox1.SelectedItems.Contains("2"))
{
  backgroundworker.ReportProgress(15);
  //Do This
  backgroundworker.ReportProgress(20);
}

(未测试)

嗯,睡在上面并喝了很多咖啡后,我想我找到了解决问题的可行方法。进度条应显示的总进度为 100。如果它们有 10 个可能的项目并且所有 10 个都被选中,则每个项目应显示 10。但是,我需要考虑并非所有项目都被选中,因此我需要捕获的数量选择的项目。使用 Linq

var count = (frim item in listbox1.Items where item.Selected select item).Count();

应该 return 选择的项目数然后我将其除以 100 以计算每个项目应该增加多少

var incrementamount = count/100;

中提琴是每个项目应该增加的数量

if (ListBox1.SelectedItems.Contains("1"))
{
  //Do This
  backgroundworker.ReportProgress(incrementamount);
}
if (ListBox1.SelectedItems.Contains("2"))
{
  //Do This
  backgroundworker.ReportProgress(incrementamount);
}