我正在使用vb.net 2013.I有3种形式:Form1,Form2,Form3
在form1上我有一个按钮。按下此按钮时,form2处于打开状态。单击事件中的代码为:
Dim dlg1 As New Form2
dlg1.Show(Me)
在From2里面我有一个TextBox(Txt1)和一个按钮。当点击这个按钮时,Form3是打开的。点击事件中的代码是:
Dim dlg2 As New Form3
dlg2.Show(Me)
在form3中我有一个按钮,用于在Form2上的文本框(txt1)中设置一个值。我使用这段代码:
Form2.txt1.Text="123"
问题是,在我按下form3上的按钮后,form2上的文本框为空,没有设置任何值。
我该怎么办? (我不想改变表格的打开方式)
谢谢!
答案 0 :(得分:1)
Form2.txt1
引用表单的default instance。
您正在使用新实例:
Dim dlg1 As New Form2
您需要替换此代码:
Dim dlg1 As New Form2
dlg1.Show(Me)
使用
Form2.Show(Me) 'not recommended
或者将您的表单Owner
投射到之前的表单类型,并设置属性(推荐):
DirectCast(Me.Owner, Form2).txt1.Text = "123"
答案 1 :(得分:0)
使用Form2.Show(),Form3.Show()
打开表单
然后如果你把它放在你的Form3按钮点击事件" Form2.txt1.Text =" 123" "它会起作用。