我的 Winforms 应用程序中有一个 datagridview 。
用户可以单击 datagridview 上的任意位置
然后单击按钮对该数据行执行操作
但是,为了做到这一点,我需要从该行恢复 ID
现在请记住,用户可能尚未单击 ID 列
所以 SelectedCell.Value 对我来说没有用
我尝试过以下代码
DataGridViewRow row = dataIPs.SelectedRows[0];
DataGridViewCell cell = row.Cells[0];
string value = cell.Value.ToString();
但这会产生越界错误。
无论用户实际选择哪一列,如何从 datagridview 的特定列获取值。
ANSWER
最终对我有用的代码如下:
DataGridViewRow row = dataIPs.CurrentCell.OwningRow;
string value = row.Cells["IPID"].Value.ToString();
您似乎正在尝试访问SelectedRows
未选择任何行时的集合。
默认选择模式为DataGridView
is CellSelect
在这种模式下,当您单击单元格时,不会选择任何行。
您需要更改选择模式或以其他方式获取所需的行。
-
您可以将选择模式更改为FullRowSelect
这可以在设计器或代码中完成:
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
-
或者您可以访问选定的单元格和其中的行:
DataGridViewRow row = dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex];
或者像这样:
DataGridViewRow row = dataGridView1.CurrentCell.OwningRow;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)