我的
Winforms应用程序中有一个datagridview.
用户可以单击datagridview上的任意位置
然后单击按钮以对该数据行执行操作
但是,为了做到这一点,我需要从该行恢复ID
现在请记住用户可能没有点击ID列
所以SelectedCell.Value在这里对我没用
我试过以下代码
DataGridViewRow row = dataIPs.SelectedRows[0];
DataGridViewCell cell = row.Cells[0];
string value = cell.Value.ToString();
但是这会产生Out of Bounds错误.
无论用户实际选择哪一列,如何从datagridview的特定列获取值.
回答
最终为我工作的代码如下:
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;