隐藏表单后如何保留其数据

问题描述 投票:-2回答:1

用户在Form1中输入数据,例如他的姓名和电话号码,他单击“下一步”按钮打开Form2并隐藏Form1,如果他单击“后退”按钮,我希望程序向Form1显示数据他进入之前

[Form1中“下一步”按钮的代码:

Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click
    Dim MyForm As New Form2
    MyForm.Show()
    Me.Hide()
End Sub

如果返回到Form1,我应该怎么做才能保留用户输入的数据?

Form2中“上一页”按钮的代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Form1.Show()
    Me.Close()
End Sub
vba winforms show-hide
1个回答
0
投票

您可以使用的一种方法是仅使用表单的DEFAULT INSTANCES。仅使用表单名称即可访问这些文件,而无需使用“ New”关键字。

[当您使用以下命令显示Form1时,您正在Form2中完全这样做:

Form1.Show()

这是有效的,因为Form1是您的启动对象,并且VB.Net使用默认实例来启动应用程序。

您可以在Form1中执行相同的操作以显示Form2:

' ... code in Form1 ...
Private Sub NextButton_Click(sender As Object, e As EventArgs) Handles NextButton.Click
    Form2.Show() ' show the default instance of Form2 (do NOT use the "new" keyword)
    Me.Hide()
End Sub

只需确保在所有位置Hide()中使用当前表单,而不要关闭它。

您可以使用相同的语法访问默认实例的属性/字段,以仅使用其名称来显示它们。例如,以下是在Form2上访问的组合值:

Dim userName As String = Form2.txtAddress1.Text

这假定Form2以前是由用户显示和填充的。您可以使用这种类型的语法从代码中的任何位置访问表单。

如果要实现自己的“默认实例”机制,则可以在类中使用共享成员:

Public Class WizardForms
    Public Shared F1 As New Form1
    Public Shared F2 As New Form2
    Public Shared F3 As New Form3
End Class

然后您可以使用这样的代码来显示一个:

WizardForms.F2.Show()

只要您仅隐藏表单,这将起作用。如果您允许用户关闭表单(或通过代码关闭表单),那么您将需要额外的代码来确保根据需要重新创建它们。

© www.soinside.com 2019 - 2024. All rights reserved.