c# - 单击网格列时出现异常

标签 c# datagridview

我正在处理数据网格,并在 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/

相关文章:

c# - Visual Studio - 自定义运行操作以使用 DebugAdapterHost.launch

c# - 正在解析 '\L' - 无法识别的转义序列

c# - C#中根据另一列的当前行过滤datagridview列

mysql - 从数据网格复制数据到数据库表时出现无效操作异常

c# - 带有 IXmlSerializable 的命名空间前缀

c# - 如何在C#中继承WPF控件并同时使用泛型类?

c# - 如何在 C#/Winforms 中将队列绑定(bind)到 DataGridView?

c# - DataGridView,如何捕获单元格的KeyPress事件C#

c# - 无法在 DataGridViewCheckBoxColumn 中选中复选框?

c# - 在 Xamarin Forms 中的 PCL 同步方法中调用异步函数