C#如何从datagridview获取所选列ID值

C#如何从datagridview获取所选列ID值,c#,winforms,datagridview,C#,Winforms,Datagridview,我有一个DataGridView,用户可以选择列。我希望所选列传递ID属性的值。我尝试了很多不同的方法,但总是出错。常见错误消息-“索引超出范围”。必须为非负数且小于集合的大小 我试过的几句台词 int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value); int id = Convert.ToInt32(dataGridView1.SelectedCells[0]); int id = Convert.ToInt

我有一个DataGridView,用户可以选择列。我希望所选列传递ID属性的值。我尝试了很多不同的方法,但总是出错。常见错误消息-“索引超出范围”。必须为非负数且小于集合的大小

我试过的几句台词

int id = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value);
int id = Convert.ToInt32(dataGridView1.SelectedCells[0]);
int id = Convert.ToInt32(dataGridView1.Rows[0].Selected);

该异常意味着您没有选择,并且
SelectedRows
集合为空。不要使用像
.FirstOrDefault()?。
所选列没有关于所选行的信息,所以您可以循环所有行以获取ID

foreach(DataGridViewRow dgvr in dataGridView1.Rows)
{
    int id = Convert.ToInt32(dgvr.Cells[0].Value);
}

“datagridview1.CurrentRow.Index”获取所选行的索引。

请澄清您的要求。“我希望所选列传递ID属性的值”-列没有“值”。您是对的,对不起。每一列的第一个单元格都是学生的id,我需要通过它,但我仍然不明白你想达到什么目的。我所能说的就是可以通过属性访问所选列。如果我使用
SelectedColumns
如何获取第一个单元格的值?我找不到这样的选项。单元格是行和列的交点。因此,列包含多个单元格。同一行。你最好用一个展示用例的具体例子来更新你的问题。我试过了,但没能成功。它甚至没有提出选项
firstOrdEvent()
。但是我不需要默认设置。仅当用户选择列时,我才需要此ID,然后我需要第一个单元格的值,即studentSimply的ID:
int ID=(int)dataGridView1.CurrentRow.Cells[0].value
Int id= Convert.ToInt32(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value);