获取数据网格视图中特定列中的值

本文关键字:获取 数据网 网格 视图 数据 | 更新日期: 2023-09-27 18:35:48

我的Winforms应用程序中有一个数据网格视图。用户可以单击数据网格视图上的任意位置然后单击按钮以对该数据行执行操作但是,为了做到这一点,我需要从该行恢复ID现在请记住,用户可能尚未单击 ID 列所以SelectedCell.Value在这里对我没用

我尝试了以下代码

DataGridViewRow row = dataIPs.SelectedRows[0];
DataGridViewCell cell = row.Cells[0];
string value = cell.Value.ToString();

但这会产生越界错误。

如何从数据网格视图的特定列中获取值,而不管用户实际选择哪一列。

最终对我有用的代码如下:

DataGridViewRow row = dataIPs.CurrentCell.OwningRow;
string value = row.Cells["IPID"].Value.ToString();

获取数据网格视图中特定列中的值

您似乎在未选择任何行时尝试访问SelectedRows集合。

DataGridView的默认选择模式是CellSelect,在此模式下,当您单击单元格时,不会选择任何行。

您需要更改选择模式或以其他方式获取所需的行。

  • 可以将选择模式更改为FullRowSelect这可以在设计器或代码中完成:

    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    
  • 或者,您可以访问所选单元格和其中的行:

    DataGridViewRow row = dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex];
    

    或者像这样:

    DataGridViewRow row = dataGridView1.CurrentCell.OwningRow;
    

尝试从事件参数中获取值。

将"选择模式"属性设置为"全行选择"。这是 SelectedRow 工作所必需的

您还可以尝试在数据网格视图中添加带有按钮的列。 之后,您可以从datagridview捕获事件"CellContentClick",该事件在eventargs中具有"RowIndex"和"ColumnIndex"属性。