Что-то подобное должно ответить на ваш вопрос:
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
' Populate manually your datagridview
Dim row As Object() = New Object() {2, "Mars", "Regular"}
dtgv.Rows.Add(row)
row = New Object() {3, "Mars", "Regular"}
dtgv.Rows.Add(row)
row = New Object() {10, "Earth", "Regular"}
dtgv.Rows.Add(row)
' Try to merge rows
For i = 0 To dtgv.RowCount - 1
merge(i)
Next
End Sub
Public Sub merge(ByVal row As Integer)
Dim planet As Boolean = False
Dim regularity As Boolean = False
' If planets are identicals
If dtgv.Rows(row).Cells(1).Value = dtgv.Rows(row + 1).Cells(1).Value Then
planet = True
End If
' Same
If dtgv.Rows(row).Cells(2).Value = dtgv.Rows(row + 1).Cells(2).Value Then
regularity = True
End If
' Merge
If planet = True And regularity = True Then
' Sum up index
dtgv.Rows(row).Cells(0).Value = dtgv.Rows(row).Cells(0).Value + dtgv.Rows(row + 1).Cells(0).Value
' Remove one row
dtgv.Rows.RemoveAt(row + 1)
' Message to warn there is a merge
MsgBox("Rows " & row & " and " & row + 1 & " merged !")
End If
End Sub
только две первые строки будет соответствовать, потому что третья одна у другой планеты.
Вы можете заказать свои данные и протестировать предыдущую строку с текущей и удалить ее, если она соответствует. – nbadaud
вот что я сделал, хочу знать, как я могу это сделать после установки значения на datagrid, будет msgbox, который будет предупреждать пользователя. – NeCat
Вы можете создать Sub, который будет зацикливать ваши строки и протестировать их. Когда он совпадает, вы добавляете MsgBox с объединенными строками или значениями, и если он не совпадает с ним, продолжайте следующую строку – nbadaud