索引超出范围异常

时间:2015-02-20 10:11:58

标签: c# indexoutofrangeexception

先生,我在这些代码中得到了超出范围异常的索引 任何人都可以解释我错误的地方

if (SelectedRowtt > -1)
{   
    dgvSItt.Rows[SelectedRowtt].Cells["Item_Code"].Value =txtItemCode.Text;
    dgvSItt.Rows[SelectedRowtt].Cells["Description"].Value = txtDescription.Text;
    dgvSItt.Rows[SelectedRowtt].Cells["Qty"].Value = Convert.ToDecimal(txtQty.Text).ToString(Program.gDigitsAfterDecimal);
    dgvSItt.Rows[SelectedRowtt].Cells["UOM"].Value = Convert.ToDecimal(txtUOM.Text).ToString(Program.gDigitsAfterDecimal);

    gvSItt.Rows[SelectedRowtt].Cells["Amount"].Value = Convert.ToDecimal(txtAmount.Text).ToString(Program.gDigitsAfterDecimal);
    dgvSItt.Rows[SelectedRowtt].Cells["Discount"].Value = Convert.ToDecimal(txtRate.Text).ToString(Program.gDigitsAfterDecimal);
    SelectedRowtt = -1;
}
else
{
    IsDO = false;
    dgvSItt.Rows.Add();
    SelectedRowtt = -1;
}

2 个答案:

答案 0 :(得分:0)

当您在数组(或集合)上使用无效索引时,会收到该消息。例如,您可能会为myArray[0]定义一个最多myArray[10]的数组。如果您尝试访问myArray[-1]myArray[11],则会收到错误。

在您的情况下,它可能位于行或单元集合上。

答案 1 :(得分:0)

取决于你如何获得SelectedRowtt。 通常会发生此类异常,因为索引从0开始并以Rows.Count -1结束,并且您尝试获取dgvSItt.Rows[Rows.Count]