如何在 VB.NET 两种形式都处于活动状态时以另一种形式更新标签中的文本(消息传递)[Visual Studio 2010]
How to update text in the label in another form in VB.NET when both form are active (Message Passing) [Visual Studio 2010]
我创建了两个表单,即 Form1 和 Form2。 Form1 由一个标签和一个显示 Form2 的按钮组成。现在 Form2 包含一个文本框和一个按钮。单击 Form2 中的按钮时,文本框中的内容应显示到 Form1 中的标签。只要用户愿意,就可以重复此操作。
到目前为止,我可以将数据传递给未打开的表单。但是当两个表格都处于活动状态时,我无法更新数据。
在Form1中,我声明了一个全局字符串
Public Property message As String
Form2中的按钮点击事件如下
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim obj As New Form1
obj.message = TextBox1.Text
End Sub
连我都试过了
obj.label1.Text = TextBox1.Text
但是这些都没有成功。
请帮助实现目标。
请记住,我想使用两个普通表单而不是任何特殊类型的表单(如 MDI)来实现此目的。
您可以通过 Show()
方法将对 Form1 的引用传递给 Form2。可以使用 .Owner
属性.
在 Form2 中检索此引用
在表格 1 中:
Dim f2 As New Form2()
f2.Show(Me) ' <-- passing reference to Form1 into Form2
在表格 2 中:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f1 As Form1 = DirectCast(Me.Owner, Form1)
f1.message = TextBox1.Text
End Sub
我创建了两个表单,即 Form1 和 Form2。 Form1 由一个标签和一个显示 Form2 的按钮组成。现在 Form2 包含一个文本框和一个按钮。单击 Form2 中的按钮时,文本框中的内容应显示到 Form1 中的标签。只要用户愿意,就可以重复此操作。 到目前为止,我可以将数据传递给未打开的表单。但是当两个表格都处于活动状态时,我无法更新数据。
在Form1中,我声明了一个全局字符串
Public Property message As String
Form2中的按钮点击事件如下
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim obj As New Form1
obj.message = TextBox1.Text
End Sub
连我都试过了
obj.label1.Text = TextBox1.Text
但是这些都没有成功。 请帮助实现目标。 请记住,我想使用两个普通表单而不是任何特殊类型的表单(如 MDI)来实现此目的。
您可以通过 Show()
方法将对 Form1 的引用传递给 Form2。可以使用 .Owner
属性.
在表格 1 中:
Dim f2 As New Form2()
f2.Show(Me) ' <-- passing reference to Form1 into Form2
在表格 2 中:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f1 As Form1 = DirectCast(Me.Owner, Form1)
f1.message = TextBox1.Text
End Sub