如何获取DataGridView双击行的第一列值?

时间:2014-05-23 05:33:56

标签: c# .net winforms datagridview datatable

我将此DataTable用作DataSource的{​​{1}}:

GridView

我想获得点击var table = new DataTable(); table.Columns.Add("ID"); table.Columns.Add("Title"); table.Columns.Add("Subject"); ... //filling DataTable myDataGridView.DataSource=table; 行的ID列值,那么我应该像这样使用什么?

DataGridView

4 个答案:

答案 0 :(得分:1)

dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value

答案 1 :(得分:1)

首先,我的回答是假设您正在使用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,则用户只需单击该行的任意位置(包括行标题)来触发事件。这可能会使您的应用程序更容易使用。

答案 2 :(得分:0)

你试图这样做

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;
    }

答案 3 :(得分:0)

完成以下代码:

GridViewRow gvrow = (GridViewRow)((ImageButton)e.CommandSource).NamingContainer;
string columnvalue= gvrow.Cells[0].Text;