📜  datagridview 当前行单元格值 vb.net (1)

📅  最后修改于: 2023-12-03 15:00:20.954000             🧑  作者: Mango

在 VB.NET 中获取 DataGridView 当前行单元格的值

在 VB.NET 的 DataGridView 控件中,有时我们需要获取当前选定行或当前活动行的某个或多个单元格的值。下面介绍几种方法:

方法一:使用 DataGridView.CurrentCell 属性

使用 DataGridView 控件的 CurrentCell 属性可以获取或设置当前选定单元格。而 CurrentCell 属性中的 RowIndex 和 ColumnIndex 属性则分别表示当前单元格所在的行和列的索引值。

' 获取当前选定单元格的值
Dim value As String = DataGridView1.CurrentCell.Value.ToString()

' 获取当前活动行的值
Dim row As DataGridViewRow = DataGridView1.CurrentRow
Dim value1 As String = row.Cells("Column1").Value.ToString()
Dim value2 As String = row.Cells("Column2").Value.ToString()
方法二:使用 DataGridView.Rows 属性

使用 DataGridView 控件的 Rows 属性可以获取当前 DataGridView 中所有行的集合。而 Rows 属性中的 Item 属性则可以根据行的索引值来获取该行的 DataGridViewRow 对象。在 DataGridViewRow 对象中,我们可以使用 Cells 属性来获取该行的所有单元格集合。

' 获取当前选定单元格所在的行的值
Dim rowIndex As Integer = DataGridView1.CurrentCell.RowIndex
Dim col1_value As String = DataGridView1.Rows(rowIndex).Cells("Column1").Value.ToString()
Dim col2_value As String = DataGridView1.Rows(rowIndex).Cells("Column2").Value.ToString()

' 获取当前活动行的所有值
Dim row As DataGridViewRow = DataGridView1.CurrentRow
Dim values As List(Of String) = row.Cells.Cast(Of DataGridViewCell)().Select(Function(cell) cell.Value.ToString()).ToList()
方法三:使用 DataGridView.CellValueChanged 事件

如果我们在 DataGridView 控件中修改了某个单元格的值,那么可以使用 DataGridView 的 CellValueChanged 事件来获取该行的所有单元格的值。

Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
    If e.RowIndex < 0 Then Return

    Dim values As List(Of String) = DataGridView1.Rows(e.RowIndex).Cells.Cast(Of DataGridViewCell)().Select(Function(cell) cell.Value.ToString()).ToList()
    ' 打印该行的所有单元格的值
    Console.WriteLine(String.Join(",", values))
End Sub

以上就是在 VB.NET 中获取 DataGridView 当前行单元格的值的几种方法。我们可以选择根据具体情况来选择最适合自己的方法。