按标题文本在dataGridView中选择单元格

时间:2012-02-29 12:10:02

标签: vb.net datagridview

我循环遍历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

可以这样做吗?

2 个答案:

答案 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()

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

希望这有帮助:)