如何让文本框保留数据
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 而不是减去,我会检查数组中该索引处的值,以允许用户将值输入文本框。
好的,所以我正在尝试制作一个包含 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 而不是减去,我会检查数组中该索引处的值,以允许用户将值输入文本框。