我有一个datagridview,我在其中通过循环填充,然后使用单元格绘画来制作所有具有te值“$ 0.00”的单元格。我现在要做的是在我的填充循环执行后,我想遍历每一行,如果每个单元格包含“$ 0.00”,我想删除整行(包括行标题)。我怎么能用循环来做到这一点?我在互联网上环顾四周,发现了“Datagridview1.rows.remove(datagridiew1[row])”。可以实施以帮助我实现这一目标吗?如果是这样,怎么做?示例代码将不胜感激。谢谢!
*编辑包含代码*
我有两个 Subs,在填充 datagridview sub 之后我在其中调用检查行
Sub PopulateDataGridView()
pb.Value = 0
pb.Visible = True
pb.Enabled = True
'Loop through each column
Dim cIndex As Integer = 0
Dim rIndex As Integer = 0
While cIndex < DataGridView1.ColumnCount
'Loop through and populate each row in column
rIndex = 0
While rIndex < DataGridView1.RowCount
'pb.Value = pb.Value + 1
If cIndex = 0 Then
'Set row header titles
DataGridView1.Rows.Item(rIndex).HeaderCell.Value = sheet.Range("A1").Offset(rIndex + 1, cIndex).Value()
DataGridView1.Rows(rIndex).Cells(cIndex).Value = sheet.Range("A1").Offset(rIndex + 1, cIndex + 1).Value()
End If
If cIndex > 0 Then
DataGridView1.Rows(rIndex).Cells(cIndex).Value = sheet.Range("A1").Offset(rIndex + 1, cIndex + 1).Value()
End If
'Set column header title
DataGridView1.Columns(cIndex).HeaderText = sheet.Range("A1").Offset(0, cIndex + 1).Value
'Change last cell (Result) color Red or Green to represent positive gain or negative loss
If rIndex = RowCount - 2 Then
If DataGridView1.Rows(rIndex).Cells(cIndex).Value < 0 Then
DataGridView1.Item(cIndex, rIndex).Style.BackColor = Color.Red
DataGridView1.Item(cIndex, rIndex).Style.ForeColor = Color.White
End If
If DataGridView1.Rows(rIndex).Cells(cIndex).Value > 0 Then
DataGridView1.Item(cIndex, rIndex).Style.BackColor = Color.Green
DataGridView1.Item(cIndex, rIndex).Style.ForeColor = Color.White
End If
If DataGridView1.Rows(rIndex).Cells(cIndex).Value = 0 Then
DataGridView1.Rows(rIndex).Cells(cIndex).Value = "Broke Even"
End If
End If
pb.Value = pb.Value + 1
rIndex = rIndex + 1
End While
'Make column unsortable
DataGridView1.Columns(cIndex).SortMode = DataGridViewColumnSortMode.NotSortable
cIndex = cIndex + 1
End While
pb.Visible = False
pb.Value = 0
pb.Enabled = False
DataGridView1.AutoResizeColumns()
'Resize all Row Headers so user can see Row Titles without resizing
DataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)
End Sub
Sub EmptyRowCheck()
Dim SkipRemove As Boolean
'loop through rows in datagrid
For Each Row As DataGridViewRow In DataGridView1.Rows
SkipRemove = False
'loop through each cell in row
For Each Cell As DataGridViewCell In Row.Cells
'if value is not $0.00 then set boolean and exit inner loop
If Not Cell.Value = " $0.00" Then
SkipRemove = True
Exit For
End If
Next
'check if to remove the row or not
If Not SkipRemove = True Then
DataGridView1.Rows.Remove(Row)
End If
Next
End Sub
我的代码将包括
PopulateDataGridView()
EmptyRowCheck()
我现在遇到的问题是使用这种方法它会跳过每隔一个空行,只删除一半的空行。