【问题标题】:Increment Progress Bar Based off ListBox Selection基于列表框选择的增量进度条
【发布时间】:2015-04-10 01:07:20
【问题描述】:

我有一个进度条,在每个过程完成后我都会增加它。我有一个包含 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);
}

【问题讨论】:

    标签: c# winforms progress-bar


    【解决方案1】:

    (未测试)

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

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

    应该返回所选项目的数量,然后我将其除以 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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-20
      • 1970-01-01
      相关资源
      最近更新 更多