Vb.net 关闭Windows窗体后,窗体数据被擦除

Vb.net 关闭Windows窗体后,窗体数据被擦除,vb.net,winforms,.net-4.0,Vb.net,Winforms,.net 4.0,我有一个辅助表单,可以在其中输入数据,然后在关闭表单并返回使用主表单之前保存数据。 当我重新打开附属表单时,我无法看到我先前输入的数据中的更改。 谁能告诉我哪里错了 MainForm.vb Public Class Maincls oTestObj as New Testcls oTestObj.XYZ = "XYZ" Private Sub SoftwareSettingsToolStripMenuItem_Click(sender As System.Ob

我有一个辅助表单,可以在其中输入数据,然后在关闭表单并返回使用主表单之前保存数据。 当我重新打开附属表单时,我无法看到我先前输入的数据中的更改。 谁能告诉我哪里错了

 MainForm.vb
    Public Class Maincls
    oTestObj as New Testcls
    oTestObj.XYZ = "XYZ"

    Private Sub SoftwareSettingsToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles SoftwareSettingsToolStripMenuItem.Click

    Testcls.tbXYZ.Text = oTestObj.m_XYZ
    Testcls.Show()
    End Sub
    End Class


    Form_Testcls.vb
    Public Class Testcls

    Structure Params
    Dim m_XYZ as String
    End Structure
    Dim oParams as Params

    Public Sub New ()
    InitializeComponent()
    End Sub

    Private Sub btnOK_Click(sender As System.Object, e As System.EventArgs) Handles btnOK.Click
    XYZ = tbXYZ.Text
    Me.Hide()
    End Sub

    Public Property XYZ() As String
            Get
                Return Me.oparams.m_XYZ
            End Get
            Set(ByVal value As String)
                Me.oparams.m_XYZ = value
            End Set
       End Property
    End Class

我认为在windows窗体中,解决这个问题的方法是创建一个静态类,并根据需要添加属性。然后在窗体关闭时填充这些静态属性。现在,您可以使用静态数据成员中设置的值,除非在任何其他事件中更改它们


编辑:在vb.net中,静态实际上是不可继承的,你可以创建一个表单的新实例,就像你应该做的那样。是的,这个新实例不记得旧实例是什么样子。您必须提供帮助。假设我打开表单Testcls并进行更改,然后单击“确定”按钮,然后我重新打开表单Testcls,更改不会显示在表单中。方法
softwaresettingstolstripmenu\u click
中的对象OTestcls不包含更新后的m\u XYZ值。您能告诉我如何更新方法软件设置下拉菜单中的更改吗?单击并将其输入文本框?我应该在什么时间点创建另一个对象,在哪里创建?感谢将
Testcls.Show()
更改为
oTestObj.Show()
,这将只是重新显示相同的表单。但是您应该创建一个新表单并传入包含要显示的值的对象。关闭窗体后,将值保存到对象。