【问题标题】:Selecting single cell data from selected row - DataGridView从选定行中选择单个单元格数据 - DataGridView
【发布时间】:2016-07-14 03:23:16
【问题描述】:

我有一个数据网格视图,其中包含数据,我已对其进行设置,因此您一次只能选择一行和一个。

但是,我需要从所选行中的一个单元格中获取数据,我已经尝试过;

Dim data As String = DataGridView1.SelectedRows.Cells(5).toString

类似的东西,但我无法获得它的价值,有人知道怎么做吗?

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    也许正确的语法是:

    Dim data As String = DataGridView1.SelectedRows(0).Cells(5).Value.ToString 
    

    MSDN docs

    【讨论】:

    • 不确定这是从哪里来的,但在 2019 年我使用的是 VS 2013,它仅适用于此代码 > 暗淡描述 As String = DataGridView1.Rows(e.RowIndex).Cells(2)。 Value.ToString() Selectedrow() 引发错误。所以我偶然发现了 e.RowIndex。现在这可能是因为我在网格中使用了一个按钮并按下它。
    • 抛出的错误是什么? SelectedRows 在 2019 年仍然存在。也许与 docs.microsoft.com/en-us/dotnet/api/… 的备注部分有关。
    【解决方案2】:
    Dim data As String = YourDataGrid.Item("YourColumnHere", YourDataGrid.CurrentRow.Index).Value
    

    希望对您有所帮助!

    【讨论】:

      【解决方案3】:

      SelectedRows 需要一个索引参数。如果您已将其设置为仅选择一行,则它将始终为 0。尝试将该行更改为:

      Dim data As String = DataGridView1.SelectedRows(0).Cells(5).Value.toString()
      

      【讨论】:

      • 它很奇怪,它给了我作为数据的字符串“DataGridView1.SelectedRows(0).Cells(5).toString”的数据。另外,当我选择高于单元格 5 时,我得到参数超出范围的错误
      • 5 与列数有关。如果你得到一个参数超出范围异常,这意味着你正在尝试访问一个不存在的列。请记住,索引从 0 开始,因此第五列的索引为 4。
      • 嗯很奇怪,我选择第 4 行,即下载,字符串出来为:DataGridViewTextBoxCell7BColumnIndex=4,RowIndex=7D
      【解决方案4】:

      '希望这段代码也是另一种方式............ DataGridView1.SelectedRows(DataGridView1.CurrentRow.Index).Cells(5).Value.ToString()

      【讨论】:

        【解决方案5】:

        而不是使用序号来标识您选择了哪一行,如果在与 datagridview 相关的事件中使用此调用,则应该有一个值传递给名为“e”的事件,这是一个结构事件参数。 如果 e.RowIndex 对该 eventarg 结构有效,则可以将其用作所选行的值:

        Dim strCellValue as string = DataGridView1.Rows(e.RowIndex).Cells(6).Value

        您还可以从该参数中获取 e.ColumnIndex。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-05
          • 1970-01-01
          相关资源
          最近更新 更多