如何从应用程序表单传递textbox.text到打开vb.net中的mdi child

时间:2014-08-10 17:17:27

标签: vb.net

我一直在寻找一种方法来从一个从mdi子句调用的打开表单传递一个文本框值,然后再回到调用的mdi子表单。

我研究了很多方法,我自己无法解决这个问题。大多数答案涉及在两种形式之间传递,从mdi父级传递给mdi子级,或者传递给两个mdi子级。

我的应用程序需要将表单中的文本框值传递给mdi子级。这是我尝试过的代码示例之一;

frmCalendar.txtSun1.Text = Me.txtInsert.Text

这个表格是从mdi孩子专门调用到mdi孩子的文本框中的输入约会。

这是我从frmCalendar打开表单的方式:

Private Sub txtSun1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSun1.DoubleClick
    Dim cInput As New frmInput
    cInput.WindowState = FormStartPosition.CenterScreen
    cInput.WindowState = FormWindowState.Normal
    cInput.Visible = True
    cInput.lblTextRecieve.Text = Me.txtSun1.Text
    cInput.txtInsert.Text = Me.txtSun1.Text
    cInput.lblDate.Text = Me.gbMonthName.Text & " " & su1.Text & ", " & Format(Now, "yyyy")
    cInput.lblSource.Text = "txtSun1"
    cInput.Focus()
    cInput.Show()
End Sub

当frmInput关闭时,这是我需要工作的行:

frmCalendar.txtSun1.Text = Me.txtInsert.Text

txtInsert是frmInput表单上唯一的文本框。

帮助!

2 个答案:

答案 0 :(得分:0)

只要文本框修饰符保持默认值(Friend),就可以创建您要作为新对象(Dim newcalendar As New frmCalendar())调用的表单。因此,即使在关闭后,您也可以作为表单(txtInsert.Text = newcalendar.txtSun1.Text)的属性访问文本框。

答案 1 :(得分:0)

创建InputForm时,为其FormClosing事件添加处理程序。这样,您就可以在表单关闭时提取所需的数据。

像这样。

Private Sub txtSun1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSun1.DoubleClick
    Dim cInput As New frmInput
    AddHandler frmInput.FormClosing, AddressOf InputFormClosing 'Note change adding the handler to the closing event
    cInput.WindowState = FormStartPosition.CenterScreen
    cInput.WindowState = FormWindowState.Normal
    cInput.Visible = True
    cInput.lblTextRecieve.Text = Me.txtSun1.Text
    cInput.txtInsert.Text = Me.txtSun1.Text
    cInput.lblDate.Text = Me.gbMonthName.Text & " " & su1.Text & ", " & Format(Now, "yyyy")
    cInput.lblSource.Text = "txtSun1"
    cInput.Focus()
    cInput.Show()
End Sub

'EventHandler to get information from the closing form
Private Sub InputFormClosing(sender As Object, e As FormClosingEventArgs)
    txtSun1.Text = DirectCast(sender, Form3).txtInsert.Text
End Sub