按标题文本选择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

这能做到吗?

此代码适用于特定列名下的选定单元格。也许你可以把它用于你想要的东西。最棒的是,它会自动滚动到选定的列。

这基本上是通过一个文本框和一个按钮运行的。用户可以输入一个字符串文本并点击按钮,然后它就会找到该列。如果没有列存在,它会告诉您。

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

这是可以做到的,可以通过标题文本进行选择。您可以循环浏览每一行并找到列名称的值。

For Each dgvr As DataGridViewRow In myDataGridView.Rows
Dim testString As String
testString = dgvr("Customer").ToString()

这应该将测试字符串的值设置为列名下的当前单元格。

希望这有帮助:)

最新更新