2015-01-09 4 views
0

이것은 간단한 코드이지만 실제로 두뇌를 씻어줍니다. 어떤 위치 코드로도 이동할 수 없습니다. 아래는 콤보 박스에서 새 항목을 추가하기 전에 listview에서 각 항목을 확인하는 것입니다. 불행히도 마지막 항목에 대해서만 작업을 확인합니다. 도와주세요. 미리 감사드립니다각 항목을 확인하는 방법 listview

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

관련 문제