vb.net DataGridView多行中删除是否包含指定全子匹配字符串的一行,并返回这一行的字符串详细代码,每行注释
时间: 2024-03-13 07:44:23 浏览: 69
下面是VB.NET中使用DataGridView删除包含指定子字符串的行的代码,同时返回被删除行的详细信息,每行都有注释说明:
```
Private Function RemoveRowsContainingSubstring(ByVal dgv As DataGridView, ByVal substr As String) As List(Of String)
Dim removedRows As New List(Of String)() '存储被删除的行的详细信息
Dim rowsToDelete As New List(Of DataGridViewRow)() '存储要删除的行
For Each row As DataGridViewRow In dgv.Rows '遍历所有行
If row.IsNewRow Then Continue For '如果是新行则跳过
For Each cell As DataGridViewCell In row.Cells '遍历行中的所有单元格
If cell.Value IsNot Nothing AndAlso cell.Value.ToString().IndexOf(substr, StringComparison.OrdinalIgnoreCase) > -1 Then '判断单元格中是否包含指定子字符串
rowsToDelete.Add(row) '将要删除的行添加到列表中
Exit For '一旦找到包含指定子字符串的单元格,就跳出循环
End If
Next
Next
For Each row As DataGridViewRow In rowsToDelete '遍历要删除的行
removedRows.Add(GetRowDetails(row)) '将被删除行的详细信息添加到列表中
dgv.Rows.Remove(row) '从DataGridView中删除该行
Next
Return removedRows '返回被删除行的详细信息
End Function
Private Function GetRowDetails(ByVal row As DataGridViewRow) As String
Dim details As New StringBuilder() '用于存储行的详细信息
For Each cell As DataGridViewCell In row.Cells '遍历行中的所有单元格
If cell.Value IsNot Nothing Then '如果单元格有值
details.Append(cell.Value.ToString()) '将单元格的值添加到字符串中
End If
details.Append(vbTab) '添加制表符,用于分隔每个单元格的值
Next
Return details.ToString() '返回行的详细信息
End Function
```
调用该函数的方式如下:
```
Dim removedRows As List(Of String) = RemoveRowsContainingSubstring(dataGridView1, "指定子字符串")
```
其中,`dataGridView1`是要操作的DataGridView控件,`"指定子字符串"`是要查找的子字符串,函数返回值`removedRows`是一个存储被删除行的详细信息的字符串列表。
阅读全文