Home > Net >  How to update text in the label in another form in VB.NET when both form are active (Message Passing
How to update text in the label in another form in VB.NET when both form are active (Message Passing

Time:09-17

I have created two forms say Form1 and Form2. Form1 consists of a label and a button which shows Form2. Now Form2 contains a text box and a button. When the button in Form2 is clicked, the content in textbox should be shown to the label in Form1. This can be repeated as long as user want. Until now I can pass data to unopened Form. But I can not update the data, when both forms are active.

In Form1, I have declared a global string

Public Property message As String

In Form2 the button click event is as follow

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

Even I have tried

obj.label1.Text = TextBox1.Text

But these were not successful. Please help to achieve the target. Please remeber I want to achieve this using two normal Forms not any special type of Forms like MDI.

CodePudding user response:

You can pass a reference to Form1 into Form2 via the Show() method. This reference can be retrieved in Form2 using the .Owner property.

In Form1:

Dim f2 As New Form2()
f2.Show(Me) ' <-- passing reference to Form1 into Form2

In Form2:

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
  • Related