1

我正在处理数据网格,并在 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();
}
4

1 回答 1

4

当您单击表格的标题时,它会发送 -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 是否超出支持数据的限制。

于 2012-07-23T16:54:48.317 回答