オブジェクト参照をオブジェクトインスタンスに設定するんには?


無知な人間  2005-03-19 05:25:22  No: 88920

.NETを始めて、間もない私です。
いくら実行しても下記のようなエラーが出ます。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
コンパイルは通っているのですが・・・・


魔界の仮面弁士  2005-03-19 06:45:59  No: 88921

最低限、「どんなコードを書いているのか」は提示してください。

現時点の情報だけでは、無知な人間さんが書かれたプログラムコードに
間違い(バグ)がある、としか答えられませんし、修正案も出せませんよ。(^^;

で。エラーの原因は、「インスタンスが割り当てられていない」事にあります。
たとえば、
   Dim X As New TextBox()
   X.Text = "TEST"
は問題なく実行されますが、
   Dim Y As TextBox
   Y.Text = "TEST"
だと、Yが空(Nothing)なので、先のエラーになりますね。


じゃんぬねっと  URL  2005-03-19 18:38:00  No: 88922

例外くらいは調べるように心がけましょ。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfSystemNullReferenceExceptionClassTopic.asp


無知な人間  2005-03-20 03:22:43  No: 88923

まことにすみません

コードは下記の通りです。
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

        Dim activeForm As MainForm
        Call Handler
        '四角形を表示
        activeForm.Viewer.InteractiveMode = RasterViewerInteractiveMode.Region
        activeForm.Viewer.InteractiveRegionType = RasterViewerInteractiveRegionType.Rectangle

End Sub

Private Sub Handler()
        AddHandler _viewer.InteractiveModeEnded, AddressOf _viewer_EnterActiveModeEnded
        ………
        Controls.Add(_viewer)
        _viewer.BringToFront()
        _viewer.AllowDrop = True
End Sub

Private Sub _viewer_EnterActiveModeEnded(ByVal sender As Object, ByVal e As EventArgs)
        If (_viewer.InteractiveMode = RasterViewerInteractiveMode.Region) Then
            _viewer.RegionToFloater()
            _viewer.FloaterVisible = True
            _viewer.AnimateFloater = True
            _viewer.InteractiveMode = RasterViewerInteractiveMode.Floater
            _viewer.Image.MakeRegionEmpty()
            DirectCast(MdiParent, MainForm).UpdateControls()
        End If
    End Sub

です。


特攻隊長まるるう  2005-03-20 09:52:49  No: 88924

>   Dim X As TextBox()
>   X.Text = "TEST"
魔界の仮面弁士さんの指摘通りの事してるでしょ?
>        Dim activeForm As MainForm
>        'Call Handler
>        ''四角形を表示
>        activeForm.Viewer.InteractiveMode = RasterViewerInteractiveMode.Region
activeForm が Nothing のまま実体化されて(インスタンスが生成されて)いません。
生成して下さい。このエラーメッセージの場合、ちゃんとデバッグすればエラーの
出た行で Nothing の状態になっているオブジェクトが必ず存在します。値型の
変数(Integer とか)は宣言した時点でメモリ上に領域が割り当てられますが、
参照型の変数の場合、宣言しただけでは実際にメモリ上に作成されません。
正しい初期化の手順を踏んで実体化させる必要があります。

>まことにすみません
>コードは下記の通りです。
だから何?何をしてもらいたいかこちらが気を使って答えなきゃ
イケナイの???ちゃんと言葉で説明しましょう。
…小学校低学年か、下手したら幼稚園で教わる事では?


じゃんぬねっと  URL  2005-03-20 22:45:36  No: 88925

"最低限" のお勉強をしないと、イタチごっこになりますね。
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加