我想获取对单元格的引用 - 即行号和列号,或者特定单元格的单元格地址(如果该 DataGridView 单元格包含文本框的值)。
我已经探索了许多 URL 来获得我想要的东西。我什至可能错过了访问 URLS,因为可能会以不同的方式询问。
Dim colNdx As Integer
Dim rowNdx As Integer
Dim IsFound As Boolean = False
For Each rw As DataGridViewRow In DataGridView1.Rows
For i As Integer = 0 To DataGridView1.Columns.Count - 1
If rw.Cells(i).Value.ToString = TextBox1.Text Then
IsFound = True
Exit For
End If
Next
Next
If (IsFound) Then
MessageBox.Show("Data Exists! in Cell of DataGridWiew1" & )
DataGridView1.Rows(rowNdx).Cells(colNdx).Value
Else
MessageBox.Show("Data Not Exists!")
End If
那么我怎样才能获得
rw.Cells(i).Value.ToString()
的单元格引用,例如显示DataGridView中存在且与Textbox匹配的该单元格的行号和列号?
我尝试了上面的代码,但无法正确设置它来获取单元格引用。
在您的代码中,您从未设置 rowNdx 或 colNdx。所以
DataGridView1.Rows(rowNdx).Cells(colNdx).Value
在 MessageBox 中不起作用,即使那段代码没有语法问题。
编写一个函数来检索单元格,如果未找到则返回 null。
Private Function FindString(dgv As DataGridView, searchString As String) As DataGridViewCell
For Each row In dgv.Rows.OfType(Of DataGridViewRow)
For Each cell In row.Cells.OfType(Of DataGridViewCell)
If cell.Value.ToString() = searchString Then
Return cell
End If
Next
Next
Return Nothing
End Function
并这样称呼它
Dim cell = FindString(DataGridView1, TextBox1.Text)
If cell IsNot Nothing Then
MessageBox.Show($"Data exists in cell ({cell.RowIndex}, {cell.ColumnIndex})")
Else
MessageBox.Show("Data does not exist!")
End If