2

このエラーメッセージがランダムに表示されます:

インデックスが配列の範囲外だった。

そして、それはこの行を指しています:

Dim placename As String = RichTextBox1.Lines(0)
4

3 に答える 3

14

つまりRichTextBox1、行がありません。それを次のように置き換えます。

Dim placename As String
If RichTextBox1.Lines.Count() > 0 Then
    placename=RichTextBox1.Lines(0)
Else
    placename = String.Empty
End if

詳細情報:
配列が通りであり、配列内の各要素が家であると想像してください。通りに 30 軒の家があり、家番号 20 を見つけたい場合、最初 (1) から開始し、20 に達するまで上に移動します。配列では、1 ではなく 0 が開始位置であるため、配列30 要素で、0 ~ 29 のインデックスが含まれます。ここで、通りのアナロジーに戻ります。通りに出て、31番の家を尋ねたと想像してみてください.30軒しかないので、その家は存在しません。それが事実上、プログラムがあなたに伝えていることです。「あなたが求めたものに到達するのに十分な要素が配列にありません」と言っています。したがって、行の配列で要素 0 を要求し、効果的に「最初の行をください」と言いました。ここで、テキスト ボックスに 0 行がある場合、最初の行が存在しないため、このエラーが発生します。

于 2010-09-22T01:35:52.710 に答える
1

インデックスが配列の範囲外だった

通常、このエラー メッセージは、配列内の null の場所でオブジェクトを呼び出したか、そこに何もないことを意味します。次のような場合に発生します。

myArray = [0,1,2,3];

trace(myArray[6]);

インデックス 6 の配列には何もないため、範囲外です。呼び出し時に配列が空の場合、インデックス 0 のオブジェクトに対してエラーが発生します。

あなたが投稿したコードの量では、それ以上のことはわかりません。その行が呼び出される前に、配列が設定されていることを確認してください。

于 2010-09-22T01:36:31.790 に答える