我正在处理数据网格,并在 cellClick 事件上获取相关文本框上的数据以进行编辑。 当我点击该行时,它工作正常,但是当我点击任何一列时,它出现异常,我不知道为什么。
这是我的代码:
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是否超出了backing data的限制。
关于c# - 单击网格列时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11616950/