0

さて、Windows アプリケーションに問題があります。私の DataGridView は、ProductName、Qty、Price、Subtotal の列で構成されています。したがって、これらのセル インデックスはそれぞれ 0、1、2、3 であると想定しています。ただし、以下のコードを実行しようとすると、次のようになります。

txtSubtotalProducts.Text = "Php " + (Convert.ToDouble(dgvProducts.Rows[0].Cells[3].Value) + Convert.ToDouble(dgvExpenses.Rows[1].Cells[3].Value) + Convert.ToDouble(dgvExpenses.Rows[2].Cells[3].Value)).ToString();

ただし、このコード ブロックを実行するたびに、次のエラー メッセージが表示されます。Index Out of Range.

ここに何か欠けていますか?よろしくお願いします。

EDITED: 申し訳ありませんが、インデックス 4 は実際に試したものでしたが、もともとはインデックスとして 2 と 3 の両方を試していましたが、うまくいきませんでした。ただし、1 (Qty 列) を試すと、完全に機能します。

4

1 に答える 1

0

ステファンは正しいです!ProductName、Qty、Price、Subtotal が 4 列ある場合。

配列は 0 ベースであるため、アクセスできる列は 0、1、2、および 3 です。

なのでアクセスしようとすると

dgvExpenses.Rows[1].Cells[4].Value

5番目の列(4番目のインデックス)がないため、Index Out of Range例外がスローされます:)

于 2010-07-11T09:17:54.303 に答える