DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewでの例外

  • 題名: DataGridViewでの例外
  • 著者: きなこ
  • 日時: 2009/10/08 15:37:44
  • ID: 25552
  • この記事の返信元:
    • (なし)
  • この記事への返信:
  • ツリーを表示
環境/言語:[WindowsXP、VB.NET]
分類:[.NET]

DataGridView内にIPアドレスを入力して、実行ボタンを押したらpingを打っていく
というプログラムを作っているのですが。途中で例外が発生し
『オブジェクト参照がオブジェクトインスタンスに設定されておりません』
と出ます。どのようにしたらよろしいでしょうか。

'変数宣言
Private reply() As System.Net.NetworkInformation.PingReply

'ここから実行ボタンイベント
Dim rows As String
rows = DataGridView1.Rows.Count
ReDim reply(rows)

For i As Integer = 0 To rows

Dim ip(rows) As String
ip(i) = DataGridView1.Item(0, i).Value

If reply(i).Status = Nothing Then ←ここで例外が発生

Else
reply(i) = p.Send(ip(i).ToString)

If reply(i).Status = System.Net.NetworkInformation.IPStatus.Success Then
DataGridView1.Item(2, i).Value = "○"
Else
DataGridView1.Item(2, i).Value = "×"
End If
End If

Next i
  • 題名: Re[1]: DataGridViewでの例外
  • 著者: 魔界の仮面弁士
  • 日時: 2009/10/08 16:15:25
  • ID: 25555
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No25552に返信(きなこさんの記事)
> '変数宣言
> Private reply() As System.Net.NetworkInformation.PingReply
PingReply クラスの配列、この時点では初期化されておらず、
reply は Nothing な状態ですね。

> ReDim reply(rows)
ここで rows + 1 個分の配列が用意されます。
ただし、それぞれの reply(0)〜reply(rows) はまだ Nothing です。

> If reply(i).Status = Nothing Then ←ここで例外が発生
この時点で、reply(i) は Nothing です。
何も無いところから、Status プロパティを見る事はできません。

それと、「 = Status」という比較式も不自然です。
この部分では、何を判定しようとしているのでしょうか?

DOBON.NET | プログラミング道 | プログラミング掲示板