2015-06-12 2 views
0

Я хочу ввести информацию в свой столбец 1 и столбец списка. Я получаю информацию, которую хочу получить в столбцах 1 и 2, но информация в столбце 2 начинается с последней строки столбца 1. Я хочу, чтобы столбец 2 также начинался с вершины. Надеюсь, вы понимаете, что я имею в виду, вот скриншот here a screenshotVB Listview второй столбец начинается с первого столбца последней строки

Dim r As New System.Text.RegularExpressions.Regex("""ID"".*""") 
Dim matches As MatchCollection = r.Matches(sr.ReadToEnd) 

    For Each itemcode As Match In matches 

      Dim Col1 As String = itemcode.Value.Split(":").GetValue(1) 
      Dim lvi As New ListViewItem 
      lvi.Text = Col1 
      ListView1.Items.Add(lvi) 
     Next  

Dim r2 As New System.Text.RegularExpressions.Regex("""ID"".*""") 
Dim matches2 As MatchCollection = r2.Matches(sr.ReadToEnd) 

    For Each itemcode2 As Match In matches2 

      Dim Col2 As String = itemcode2.Value.Split(":").GetValue(1) 
      Dim lvi As New ListViewItem 
      lvi.SubItems.Add(Col2) 
      ListView1.Items.Add(lvi) 
     Next 

Любая помощь приветствуется.

+0

добавить Col2 информацию как подпункты к существующим ListViewitems (Dont создавать новые) или лучше добавить их в то же самое время, чтобы вы не запутались заказ – Plutonix

+0

Я сожалею, но не могу найти решение. Пытался искать его, но не повезло. – Mathijs

+0

Вы указали только фрагмент кода. которые не скомпилируются. любой, кто хочет помочь, должен * угадать *, что выглядит выражение FOR. – Plutonix

ответ

0

Предполагая, что в вашем втором методе вы вращаетесь в том же списке, что и первый (или список с одинаковым подсчетом), следующий код будет работать. Это предполагает предложение Plutonix и добавление подэлементов к уже созданному ListItems.

Dim intCursor As Integer = 0 
    Do While intCursor < lstYourList.Count 

     'Assumes your list is called lstYourList 
     Dim strSubItemToAdd As String = lstYourList(intCursor).Value.Split(":").GetValue(1) 

     ListView1.Items(intCursor).SubItems.Add(strSubItemToAdd) 

     intCursor += 1 

    Loop 

Если вы настаиваете на сохранении вашего для каждой итерации Regex Совпадение (за комментарии к первоначальному ответу), то это было бы ближе к этому:

Dim intCursor As Integer 

For Each itemcode2 As Match In YourRegex.Matches(strSource) 

    ListView1.Items(intCursor).SubItems.Add(itemcode2.Value.Split(":").GetValue(1)) 

    intCursor += 1 

Next 

Хорошо, позвольте мне сделать еще один удар при этом на основе ваших комментариев. Я изменил ваш код выше, чтобы добавить второй список регулярных совпадений во второй столбец. Вы заметите, что я добавляю новый ListViewItem, если мы прошли общее число ListViewItems в ListView. В противном случае я просто добавил их как SubItems.

Dim r As New System.Text.RegularExpressions.Regex("""ID"".*""") 
Dim matches As MatchCollection = r.Matches(sr.ReadToEnd) 

For Each itemcode As Match In matches 

    Dim Col1 As String = itemcode.Value.Split(":").GetValue(1) 
    Dim lvi As New ListViewItem 
    lvi.Text = Col1 
    ListView1.Items.Add(lvi) 

Next  

Dim r2 As New System.Text.RegularExpressions.Regex("""ID"".*""") 
Dim matches2 As MatchCollection = r2.Matches(sr.ReadToEnd) 

Dim intCursor As Integer 

For Each itemcode2 As Match In matches2 

    Dim Col2 As String = itemcode2.Value.Split(":").GetValue(1) 

    If intCursor = ListView1.Items.Count Then 

     ListView1.Items(intCursor).SubItems.Add(Col2) 

    Else 

     Dim lvi2 As New ListViewItem 
     lvi2.SubItems.Add(Col2) 

     ListView1.Items.Add(lvi2)  

    End If 

    intCursor += 1 

Next 
+0

Спасибо, я добавил ваш код, но я получаю сообщение об ошибке: http://prntscr.com/7g9qzn – Mathijs

+0

Вместо того, чтобы использовать для каждого, чтобы прокручивать спички регулярных выражений, замените его на Do Loop. Или сохраните для каждого, но держите курсор, чтобы добавить SubItem в правильный ListViewItem. – N0Alias

+0

@ Mathijs Я отредактировал ответ. Если последнее изменение (см. Нижнюю часть ответа) не является тем, что вы ищете, то полный ответ должен быть достаточным для того, чтобы помочь вам достичь того, чего вы пытаетесь выполнить самостоятельно. – N0Alias

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