C# 单击网格的列时发生异常

C# 单击网格的列时发生异常,c#,datagridview,C#,Datagridview,我在一个datagrid上工作,在cellClick事件上获取相关texbox上的数据进行编辑。 当我单击行时,它工作正常,但当我单击任何列时,它会给出异常,我不知道为什么 这是我的密码: private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { itmId.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(

我在一个datagrid上工作,在cellClick事件上获取相关texbox上的数据进行编辑。 当我单击行时,它工作正常,但当我单击任何列时,它会给出异常,我不知道为什么

这是我的密码:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    itmId.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
    itmNme.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
    untCst.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
    qntty.Text = dataGridView1.Rows[e.RowIndex].Cells[3].Value.ToString();
    manfDate.Text = dataGridView1.Rows[e.RowIndex].Cells[4].Value.ToString();
}

当您单击表的标题时,它将发送行索引-1。在其他情况下,此事件可能会使用无效的rowindex和columnindex值触发

在使用rowindex和columnindex之前,应该测试它们

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.RowIndex >= 0 && e.ColumnIndex >= 0) {
        // .. my code goes here ..
    }
}

在某些情况下,您可能还需要测试rowindex和columnindex是否超出支持数据的限制。

当您单击表头时,它会发送-1的行索引。在其他情况下,此事件可能会使用无效的rowindex和columnindex值触发

在使用rowindex和columnindex之前,应该测试它们

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (e.RowIndex >= 0 && e.ColumnIndex >= 0) {
        // .. my code goes here ..
    }
}

在某些情况下,您可能还需要测试rowindex和columnindex是否超出了支持数据的限制。

我不熟悉dataGrid对象。但通常0是一个有效的索引。我不熟悉dataGrid对象。但通常0是一个有效的索引。看来Ted Spence的答案帮助您解决了问题。这是解决方案,然后你可以点击答案旁边的箭头将其标记为已接受的答案。看来Ted Spence的答案帮助你解决了问题。它是解决方案,然后您可以通过单击答案旁边的箭头将其标记为已接受的答案。