2015-01-09 2 views
0

Это простой код, но он действительно моет мой мозг .. переход на любой код позиции не помог. ниже - проверять каждый элемент из списка, прежде чем добавлять новый элемент из поля со списком. к сожалению, проверка работы только для последнего элемента. Помоги мне. Заранее спасибоКак проверить каждый список товаров

Dim checkType As String 
     Dim checkSubType As String 
     Dim TempNode As ListViewItem 
     For Each TempNode In ListView1.Items 
      checkSubType = TempNode.SubItems.Item(0).Text 
      checkType = TempNode.SubItems.Item(1).Text 
     Next 

     If ComboBox1.Text = checkSubType AndAlso ComboBox2.Text = checkType Then 
      With ListView1.Items.Add(ComboBox1.Text, 0) 
       .SubItems.Add(ComboBox2.Text) 
       .SubItems.Add("DUPLICATE") 
      End With 
     Else 
      With ListView1.Items.Add(ComboBox1.Text, 0) 
       .SubItems.Add(ComboBox2.Text) 
       .SubItems.Add("ADD NEW") 
      End With 
     End If 

РЕШЕНИЕ:

Dim total As Integer 
     If ListView1.View = View.Details AndAlso ListView1.Items.Count > 0 Then 
      'Dim lvi As ListViewItem = ListView1.FindItemWithText(ComboBox1.Text, True, 0) 
      Dim lva As ListViewItem = ListView1.FindItemWithText(ComboBox2.Text, True, 0) 

      If lva IsNot Nothing Then 
       '...... 
      Else 
       '...... 
      End If 
     Else 
      '...... 
     End If 

ответ

0

Проблема заключается в вашей Для каждого цикла. Каждый раз, когда вы зацикливаете, вы сбрасываете старые значения в checkSubType и checkType и сохраняете над ними новые значения. Вот почему проверяются только последние элементы.

Dim checkType as List(Of String) = new List(Of String) 
Dim checkSubType as List(Of String) = new List(Of String) 


For Each TempNode In ListView1.Items 
     checkSubType.Add(TempNode.SubItems.Item(0).Text) 
     checkType.Add(TempNode.SubItems.Item(1).Text) 
Next 

На данный момент у вас теперь есть два списка, полный предметов, их можно проверить.

Или вы могли бы попробовать что-то вроде этого

Dim checkType As String 
    Dim checkSubType As String 
    Dim TempNode As ListViewItem 

    For value As Integer 0 To ListView1.Items.Count 
     checkSubType = TempNode.SubItems.Item(0).Text 
     checkType = TempNode.SubItems.Item(1).Text 


    If ComboBox1.Text = checkSubType AndAlso ComboBox2.Text = checkType Then 
     With ListView1.Items.Add(ComboBox1.Text, 0) 
      .SubItems.Add(ComboBox2.Text) 
      .SubItems.Add("DUPLICATE") 
     End With 
    Else 
     With ListView1.Items.Add(ComboBox1.Text, 0) 
      .SubItems.Add(ComboBox2.Text) 
      .SubItems.Add("ADD NEW") 
     End With 
    End If 
Next 
+0

Спасибо, но где я ставлю «если разрешение», если я использую первый код советов, потому что вторая ошибка советов в TempNode. :) – Dya

+0

Mathemats: И я пробовал второй код, но при обнаружении дубликата, множественный список listview, вызванный числом просмотров списка – Dya

+0

, проблема решена, спасибо – Dya

Смежные вопросы