【VB.net】フォーム間でのやり取りについて
先日、同じような質問をさせて頂いたのですが、
解決に至らなかったため、もう少し質問内容を工夫しますので、再度質問させてください。
・実行したいプログラム
フォーム1のボタン1をクリックすると、フォーム2を開くと同時にフォーム2ボタン1がvisible=Trueになる。
フォーム1のボタン2をクリックすると、フォーム2を開くと同時にフォーム2のボタン1がvisible=Falseになり、ボタン2がvisible=Trueになる。
・書いたコード
----------------
Public Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim f As New Form2
f.Owner = Me
f.Show()
DirectCast(Me.Owner, Form2).Button1.Visible = True
DirectCast(Me.Owner, Form2).Button2.Visible = False
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Dim f As New Form2
f.Owner = Me
f.Show()
DirectCast(Me.Owner, Form2).Button1.Visible = False
DirectCast(Me.Owner, Form2).Button2.Visible = True
End Sub
End class
----------------
・問題点
「nullreferenceexceptionはハンドルされませんでした
オブジェクト参照がオブジェクト インスタンスに設定されていません。」
というエラーが発生します。
「DirectCast(Me.Owner, Form2).Button1.Visible = True」の部分のエラーです。
手書きで申し訳ありませんが、書きたいプログラムの参考画像も載せておきます。
数日前より調べては試し調べては試しと試行錯誤していますが、
正直手詰まりになっており、非常に困っております。
この他にも、フォーム間で命令を出しあいたい場面が多々あるのですが、
プロパティを変える程度のコードでつまずいていて、先に進めません。
手直しした簡単なサンプルコードを書いて頂けると非常に助かります。
以上、何卒よろしくお願い致します。
お礼
ありがとうございます
補足
Private Sub Command1_Click() Form2.Show Form1.unload End Sub 今のフォーム(Form1)が閉じられないのはなぜなのでしょうか?