как удалить совпадающие строки двух datagridview? - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть два dagagview в форме datagridview1 и datagridview2 и одна кнопка с именем delete. Оба datagridview имеют несколько строк, в которых идентификатор первого столбца и имя второго столбца совпадают. Я хочу, если я удаляю строку из datagridview1, то она должна автоматически удалить соответствующую строку в datagridview2. я не знаю как это сделать? подскажите пожалуйста как это сделать?

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    For Each rw As DataGridViewRow In DataGridView2.SelectedRows

        Dim x As String
        x = rw.Cells(0).Value
        For Each row As DataGridViewRow In DataGridView1.SelectedRows
            DataGridView1.Rows.Remove(row)
            If row.Cells(0).Value = x Then
                DataGridView2.Rows.Remove(row)
            End If
        Next
    Next
End Sub

1 Ответ

0 голосов
/ 21 апреля 2020

Удалить выбранные строки из DataGridView1 и совпадения из DataGridView2, если таковые имеются. Совпадения идентифицируются столбцом Id, который является первым столбцом в обоих DGV. Если это звучит правильно, то вы можете достичь этого с помощью запроса LINQ следующим образом:

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim q = From x In dataGridView1.SelectedRows.Cast(Of DataGridViewRow).
                Where(Function(r) Not r.IsNewRow),
                y In dataGridView2.Rows.Cast(Of DataGridViewRow).
                Where(Function(r) Not r.IsNewRow AndAlso
                    r.Cells(0).Value.ToString = x.Cells(0).Value.ToString).
                DefaultIfEmpty
            Select x, y

    For Each t In q
        dataGridView1.Rows.Remove(t.x)
        If t.y IsNot Nothing Then dataGridView2.Rows.Remove(t.y)
    Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...