tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルオブジェクト参照がオブジェクト インスタンスに設定されていません。
記事No2409
投稿日: 2005/10/13(Thu) 19:09
投稿者raly pop
[OSのVer]:Windows2000    [VBのVer]:VB.NET
“フォーム間の変数の受け渡し”の質問をさせていただいていたものです。
  
form2からform3を呼び出し、form3のボタンを押すと、form3が閉じるようにしているのですが、
form2への変数の受け渡しを追加すると(追加前は普通に動いていた)
“オブジェクト参照がオブジェクト インスタンスに設定されていません。”とでるようになりました

何故でしょうか?ご教授願います。
値は渡せているようなのですが、form3のMe.Close()の上記のメッセージが出て止まってしまいます。
(コンパイルは成功してます)
以下プログラム。
------------------------------------------------------------------------------------
form2
Public ccc As Integer
Private callform3 As Form3

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
        
        If ccc = 1 Then
            Dim callform5 As New Form5
            callform5.ShowDialog()

        ElseIf ccc = 2 Then
            …
--------------------------------------------------------------------------
form3
Private ddd As Integer
    Public callform2 As Form2
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
        ddd = 1
        callform2.ccc = ddd
        Me.Close()
    End Sub
   (同様に、ボタン2ではdddが“2”になっています。)

[ツリー表示へ]
タイトルRe: オブジェクト参照がオブジェクト インスタンスに設定されていません。
記事No2410
投稿日: 2005/10/13(Thu) 21:39
投稿者なおこ(・∀・)
お世話になります。

Form3のプライベートメンバのcallform2には
値をどこかでセットしてますか?

おそらく、callform2がNothingなので
NullReferenceExceptionがThrowされているんだと思うのですが…

[ツリー表示へ]
タイトルRe: オブジェクト参照がオブジェクト インスタンスに設定されていません。
記事No2411
投稿日: 2005/10/14(Fri) 09:50
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
こんにちは、じゃんぬ です。

> 値は渡せているようなのですが、

"どこに" 値を渡せれているのでしょうか?

> form3のMe.Close()の上記のメッセージが出て止まってしまいます。

実際、例外が起きるのがどこなのか微妙な表現です。

ブレーク ポイントという機能とステップ実行を活用して最低限のデバッグをしてください。

[ツリー表示へ]
タイトルRe^2: オブジェクト参照がオブジェクト インスタンスに設定されていません。
記事No2412
投稿日: 2005/10/14(Fri) 14:13
投稿者raly pop
[OSのVer]:Windows    [VBのVer]:VB.NET  
なおこ(・∀・)さん、じゃんぬさん、助言ありがとうございます。
なおこ(・∀・)さんのご指摘のとおり、callform2がNothingでした。
callform2 = New callform2とかやってしまうと、元のForm2じゃないから…
みたくやっているうちに、わかんないループに陥った挙句、こんなことになってました。
でも、なんとか以前、いろいろ教えていただいていたので、自己解決できました。

> > 値は渡せているようなのですが、
>
> "どこに" 値を渡せれているのでしょうか?

dddをcallform2.cccに渡せている、ということです。

[ツリー表示へ]