0
 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)は真ではありませんが、アイテムのチェックを外すと、私の間違いはどこにあるのでしょうか? たとえば、アイテムをチェックしましたが計算されませんが、アイテムのチェックを外すと正しく計算されます

4

1 に答える 1

0

には 2 つの選択動作があります。checkedlistbox

1.Selectingアイテム。
2.Checkingアイテム。

覚えておくべきポイント:
1.関数を呼び出すとGetItemChecked()、アイテムがチェックされているかどうかのみが返されますが、選択されていないかどうかはわかりません。下の画像を参照してください。

CheckedListBox の動作

2.GetItemChecked(i)コード内の関数は のアイテム全体を繰り返し処理するため、すべてのアイテムではなく、アイテムに対して true を返すCheckedListBoxかどうかを確認する必要があります。GetItemChecked(i)i

3.コーディングの観点からは、何も変更する必要はありません。

これらは私の推測ですので、その後も問題が解決しない場合はお知らせください。

于 2013-11-11T04:52:05.837 に答える