如何让文本框保留数据

how to make textboxes retain data

好的,所以我正在尝试制作一个包含 3 个文本框以及下一步和后退按钮的表单。我应该在这些文本框中输入数据。我想要做的是,如果我点击下一步按钮,同一个表单将显示其初始状态(3 个空文本框和两个按钮),但如果我点击后退按钮,它将显示我在文本框中输入的数据我进入了他们。基本上,我希望文本框能够保留数据。我完全不知道该怎么做。我在网上搜索无济于事。这是否需要数据库或其他东西?请帮助:(

在清除文本框之前,您始终可以只为包含该文本框中文本的每个文本框创建一个标签。

Textbox1.Tag = Textbox1.Text
Textbox1.Clear()

然后使用后退按钮召回:

Textbox1.Text = Cstr(Textbox1.Tag)

完成数据后:

Textbox1.Tag = Nothing

我会使用字符串数组。不确定您对 vb 或一般编码有多熟悉,但数组只是一个普通变量,它包含一堆相同类型的不同信息。 (即,如果您有 3 个字符串 "cat"、"dog" 和 "fish",您可以将字符串数组设置为 strAnimal(2) = {"cat"、"dog", "fish"} 因为 vb 很古怪并且从索引 0 开始或者只是将其设为 strAnimal() 所以它可以容纳的字符串数量几乎是无限的)

我的做法是这样的:

'all static variables maintain their values even when the click procedure ends
'for ease I am assuming there are values in the arrays already

Static intCounter As Integer   'for index
Const intArrayLimit As Integer = 'whatever you decide you want the most to be stored is

Private Sub btnBack_Click(autocode that Visual Studio puts in for the buttonclick procedures) Handles btnBack.Click

    Static strEntered1(intArrayLimit) As String    'textbox 1 array
    Static strEntered2(intArrayLimit) As String    'textbox 2 array
    Static strEntered3(intArrayLimit) As String    'textbox 3 array

    'decrease counter to previous index
    intCounter = intCounter - 1

    'display stored values
    Me.TextBox1.Text = strEntered1(intCounter)
    Me.TextBox2.Text = strEntered2(intCounter)
    Me.TextBox3.Text = strEntered3(intCounter)

    'disable back button if there are no values before these
    If intCounter = 0 Then
        Me.btnBack.Enabled = False
    Else
        Me.btnBack.Enabled = True
    End If

    'enable forward button if there are more values entered beyond those displayed
    If intCounter < intArrayLimit Then
        Me.btnNext.Enabled = True
    Else
        Me.btnNext.Enabled = False
    End If
End Sub

然后,对于 Forward/Next 按钮,您将计数器加 1 而不是减去,我会检查数组中该索引处的值,以允许用户将值输入文本框。