Vb.net如何合并列
我的datagridview有问题。如果第2列和第3列相同,如何合并行 例如:Vb.net如何合并列,vb.net,datagridview,datagrid,Vb.net,Datagridview,Datagrid,我的datagridview有问题。如果第2列和第3列相同,如何合并行 例如: Col 1| Col2| Col3| 2| Mars|Regular 3| Mars|Regular 如何将其合并为一列?类似的内容应该可以回答您的问题: Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load ' Populate manually your
Col 1| Col2| Col3|
2| Mars|Regular
3| Mars|Regular
如何将其合并为一列?类似的内容应该可以回答您的问题:
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
只有前两行匹配,因为第三行有不同的行星。您可以对数据进行排序,测试前一行与当前行的数据,如果匹配,则将其删除。这就是我所做的。我想知道在将值放入datagrid后如何做。将有一个msgbox警告用户您可以创建一个将循环您的行并测试它。当它匹配时,你添加一个带有合并行或值的MsgBox,如果它不匹配,继续下一行。我不知道Merging的代码。你不明白我说的话。这不是一个合并,它只会发现两行是否相同,并在这种情况下删除一行。您知道您可以通过x,y来寻址dgv单元格吗?e、 g.
dtgv(colNum,rowNum)。value
可能返回Nothing
您可以通过添加“”或添加0来避免测试,例如dtgv(colNum,rowNum)。value&“”
可以节省大量键入。