2015-11-12 40 views
0

我試圖將2個列表框的值相乘,並使他們的產品出現在另一個列表框我得到我需要的結果,但問題是當我使用命令重新運行循環按鈕列表框中刪除由ppc [i] * qty [i]計算的第一個值的下一個實例,但是當我嘗試刪除listBox4.Items.Remove(ppc [i] * qty [i])時,它重新打印整個再次陣列從第一個元素到最後一個元素listboxes彼此傳遞值

string myString = textBox1.Text.ToString(); 
     int index = listBox6.FindString(myString, -1); 
     int[] qty = new int[99]; 
     int[] ppc = new int[99]; 
     int[] gt1 = new int[99]; 

     listBox3.Items.Add(listBox5.Items[index]); 
     listBox1.Items.Add(textBox2.Text.ToString()); 
     if (index != -1) 
     { 
      listBox6.SetSelected(index, true); 
      listBox2.Items.Add(textBox1.Text); //name 
     } 

     listBox3.Items.Add(listBox5.Items[index]); 
     listBox3.Items.Remove(listBox5.Items[index]); 

     for (int i = 0; i != listBox2.Items.Count ; i++) 
     { 
      ppc[i] = Convert.ToInt32(listBox3.Items[i]); 
      qty[i] = Convert.ToInt32(listBox1.Items[i]); 
      listBox4.Items.Remove(ppc[i] * qty[i]); 
      listBox4.Items.Add((ppc[i] * qty[i])); 
     } 

回答

0

我的理解是,這個循環的工作一次,然後它在重新運行失靈。每次執行這個循環時,你確定清除listbox4嗎?此外,因爲不使用listBox2,所以最好不要將它用於循環邊界。

if(listBox1.Items.Count == listBox3.Items.Count) 
{ 

    int rowCount = listBox1.Items.Count; 
    listBox4.Items.Clear(); 

    for (int i=0; i < rowCount; i++) 
    { 
      ppc[i] = Convert.ToInt32(listBox3.Items[i]); 
      qty[i] = Convert.ToInt32(listBox1.Items[i]); 
      listBox4.Items.Insert(i , (ppc[i] * qty[i])); 
    } 
}