2016-08-23 77 views
0

我想通过函数来​​计算datagridview中填充的行。
这个函数包含2个参数,第一个是我想要填充的列数,第二个是datagridview的行数。
我试过这段代码:在Datagridview中计数填充行

Function dgvAggregate(ByVal colNum As Integer, ByVal dgvcount As Integer) 
    Dim x As Integer = 0 
    For i As Integer = 0 To dgvcount - 1 
     For j As Integer = 0 To colNum 
      If Not (dg.Rows(i).Cells(j).Value = Nothing) Then 
       x += 1 

      End If 
     Next j 
    Next i 
    Return x 
End Function 

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click 
    MsgBox(dgvAggregate(2, dg.Rows.Count)) 
End Sub 

但这个代码返回具有价值细胞的数量!
根据用户输入的列数,我如何计算行数?

回答

2

对于每个有值的单元,您都在递增x。您需要进行测试并逐行增加,在i的循环中。

您需要在循环的开始处设置一个标志,然后检查是否有没有任何列,如果找到一些标志,则更新标志。如果该标志没有被更新,则增加x

Function dgvAggregate(ByVal colNum As Integer, ByVal dgvcount As Integer) 
    Dim x As Integer = 0 
    Dim emptyColumns as Integer = 0 

    For i As Integer = 0 To dgvcount - 1 
     emptyColumns = 0 
     For j As Integer = 0 To colNum 
      If dg.Rows(j).Cells(i).Value = Nothing Then 
       emptyColumns += 1 
      End If 
     Next j 
     If emptyColumns = 0 Then 
      x += 1 
     End If 
    Next i 

    Return x 
End Function 

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click 
    MsgBox(dgvAggregate(2, dg.Rows.Count)) 
End Sub 
+0

flag?!!,那是怎么回事? – Ayden

+0

很棒的@cdkMoose,谢谢 – Ayden

+0

如果你喜欢这个答案,它适合你,请接受答案 – cdkMoose