我循环遍历datagridview中的行,每次都从第3列中选择一个单元格:
Dim customer_name as String
For Each dgvr As DataGridViewRow In myDataGridView.Rows
customer_name= dgvr.Cells(2).Value
'....
next dgvr
但是,我真的想让它变得动态,以防新列添加到网格中,这样我就需要第4列,而不是第3列。
理想情况下,我想使用列的标题文本。所以......就像......
customer_name= dgvr.Cells("Customer").value
可以这样做吗?
答案 0 :(得分:1)
此代码适用于特定列名下的选定单元格。也许你可以将它用于你正在寻找的东西。最好的部分是,它会自动滚动到所选列。
这基本上是从文本框和按钮运行的。用户可以输入一个文本字符串并点击按钮,然后它将找到该列。如果没有列,它会告诉您。
Private Sub btnSearch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
Dim search As String = tbSearch.Text
Dim Found As Integer = 0
If dgv.Rows.Count > 0 Then
For Each col As DataGridViewColumn In dgv.Columns
Dim colname As String = col.HeaderText
If search = colname Then
'MsgBox(search & " = " & colname)
dgv.Rows.Item(0).Cells(search).Selected = True
Found = 1
End If
Next
If Found = 1 Then
'do nothing
Else
MsgBox("No columns with the name " & search)
End If
Else
MsgBox("No data to analyze... ")
End If
End Sub
答案 1 :(得分:0)
可以这样做,可以通过标题文本进行选择。您可以遍历每一行并查找列名称的值。
For Each dgvr As DataGridViewRow In myDataGridView.Rows
Dim testString As String
testString = dgvr("Customer").ToString()
这应该将测试字符串的值设置为列名下的当前单元格。
希望这有帮助:)