Как добавить строку просмотра данных - PullRequest
1 голос
/ 15 апреля 2019

Я получаю эту ошибку: «Индекс вышел за пределы диапазона. Должен быть неотрицательным и меньше размера коллекции».Я думаю, что причина в том, что у меня нет строки, и я помещаю в нее значение.

это правильно?

DataGridView2.Rows.Add(New String() {0})

В основном я делаю группирование набора данных и копирование его в другую таблицу.

For j As Integer = 1 To 29 Step 1
    Dim DGV2Max1 As New DataGridViewTextBoxColumn
    DGV2Max1.DataPropertyName = "Max" & j
    DGV2Max1.HeaderText = "Max" & j
    DGV2Max1.Name = "Max" & j
    DataGridView2.Columns.Add(DGV2Max1)
Next

For j As Integer = 1 To 29 Step 1
    For i As Integer = 0 To DataGridView1.RowCount - 1 Step 1
        If DataGridView1.Rows(i).Cells("Group").Value = j Then
         DataGridView2.Rows.Add(New String() {0})
         DataGridView2.Rows(i).Cells("Max" & j).Value = DataGridView1.Rows(i).Cells("Group").Value
        End If
    Next
Next

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Вот мой окончательный код

 Dim dgv2 As Integer = 0
    For j As Integer = 1 To 29 Step 1
        For i As Integer = 0 To DataGridView1.RowCount - 1 Step 1
            If DataGridView1.Rows(i).Cells("Group").Value = j Then
                DataGridView2.Rows.Add(New String() {0})
                DataGridView2.Rows(dgv2).Cells("Max" & j).Value = DataGridView1.Rows(i).Cells("X_Pitch").Value
                dgv2 += 1
            End If
        Next
    Next
0 голосов
/ 15 апреля 2019

Вы пытаетесь получить доступ к одной и той же пронумерованной строке в каждом DataGridViews через i.Это не сработает, если строка не добавляется к DataGridView2 каждой итерации.

Вместо того, чтобы пытаться использовать одну и ту же строку в каждой, найдите последнюю строку в DataGridView2 и используйте это:

For j As Integer = 1 To 29 Step 1
    For i As Integer = 0 To DataGridView1.RowCount - 1 Step 1
        If DataGridView1.Rows(i).Cells("Group").Value = j Then
            DataGridView2.Rows.Add(New String() {0})
            DataGridView2.Rows(DataGridView2.Rows.Count - 1).Cells("Max" & j).Value = DataGridView1.Rows(i).Cells("Group").Value
        End If
    Next
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...