如何获得DataGridView双击行的第一列值
本文关键字:一列 DataGridView 何获得 双击 | 更新日期: 2023-09-27 18:04:48
我使用这个DataTable
作为GridView
的DataSource
:
var table = new DataTable();
table.Columns.Add("ID");
table.Columns.Add("Title");
table.Columns.Add("Subject");
... //filling DataTable
myDataGridView.DataSource=table;
我想获得DataGridView
的点击行ID
列值,所以我应该这样使用什么?
private void myDataGridView_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
//??
}
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value
首先,我的回答假设您正在使用DataGridView
,即使您写(并标记)您正在使用GridView
。
这是你想要的代码:
if (e.RowIndex >= 0) {
var row = myGridView.Rows[e.RowIndex].DataBoundItem as DataRowView;
if (row != null) {
string id = row["ID"].ToString();
}
}
此代码仅将DataRowView
绑定到已单击的DataGridView
行并提取其"ID"字段值,但仅在双击非标题行时。
现在您写了希望在单击行时获得ID,并向我们展示了CellContentDoubleClick
处理程序。上面的代码在使用CellContentDoubleClick
时可以工作,但我想知道您是否更愿意使用CellDoubleClick
。不同之处在于,用户实际上必须单击单元格的显示值才能触发CellContentDoubleClick
,但如果使用CellContentDoubleClick
,用户只需单击行上的任何位置(包括行标头)即可触发事件。这会让你的应用更容易使用。
你想这么做吗
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int y = e.RowIndex;
int x = e.ColumnIndex;
}
private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
{
int y1 = e.RowIndex;
int x1 = e.ColumnIndex;
}
检查以下代码:
GridViewRow gvrow = (GridViewRow)((ImageButton)e.CommandSource).NamingContainer;
string columnvalue= gvrow.Cells[0].Text;