复选框列表,当我取消选中时,它将正常工作

时间:2013-11-10 21:17:45

标签: c# checkboxlist

 void calculate()
 {
     total = 0.0; 
     price = 0.0;
     calori = 0;
     for (int i = 0; i < AdditionsListBox.Items.Count; i++)
     {
         if (AdditionsListBox.GetItemChecked(i) == true)
         {
             price = price + pricearray[milkindex * 3 + i];
             calori = calori + caloriarray[milkindex * 3 + i];
         }
     }
     total = Convert.ToInt16(numericUpDown5.Value)* price;
     totalTextbox.Text = price.ToString();
     UnitCaloriTextbox.Text = calori.ToString();
     totalTextbox.Text = total.ToString();
 }

当我检查时,AdditionsListBox.GetItemChecked(i)它不是真的但当我取消选中项目时,它会给我真实的错误在哪里? 例如我检查了项目,但它没有计算,但当我取消选中项目时,它正确计算

1 个答案:

答案 0 :(得分:0)

checkedlistbox

中有两种选择行为

1. Selecting项目。
2。Checking项目。

要记住的要点:
1.当你调用GetItemChecked()函数时,它只返回是否选中了项目,但是没有选中。见下图。

CheckedListBox Behaviour

2.代码中的GetItemChecked(i)函数会遍历CheckedListBox的整个项目,因此您必须确保GetItemChecked(i)对于您的项i是否返回true但不适用于所有项目。

3.从编码的角度来看,你不需要改变任何东西。

由于这些是我的假设,如果你仍然遇到问题,请告诉我。