基于列表框选择的增量进度条
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);
}
我有一个进度条,它会在每个进程完成后递增。我有一个包含 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);
}