2015-11-12 2 views
0

Я пытаюсь объединить значения из 2 списков вместе и сделать их продукт отображаемым в другом списке. Я получаю результаты, которые мне нужны, но проблема в том, что я перезапускаю цикл, используя команду кнопка listbox удаляет следующий экземпляр первого значения, вычисленный 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

Я понимаю, что этот цикл работает один раз, а затем, когда он повторно запустить его выход из строя. Убеждаетесь ли вы очистить списокbox4 каждый раз, когда этот цикл выполняется? Кроме того, поскольку 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])); 
    } 
} 
Смежные вопросы