2016-08-23 39 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