我彼此之间有多个文本框。除了第一个,我希望所有这些都被隐藏。如果第一个框内有文本,则应显示第二个框。如果第二个框中包含文本,则将显示第三个框。
答案 0 :(得分:0)
您可以使用文本框的 AfterUpdate 事件,这里是第一个事件:
Me!TextBox2.Visible = Not IsNull(Me!TextBox1.Value)
以此类推。
答案 1 :(得分:0)
鉴于您的文本框被命名为txtBox1
至txtBox6
,您可以将此过程放置在每个文本框的AfterUpdate
事件中。
该过程还将不可见文本框的值设置为Null
。如果您不希望这样做,只需注释相关的代码行即可。
Private Sub SetTextBoxes(ByVal startWithTextBoxNr As Long)
Const TEXTBOX_COUNT As Long = 6
Const COMMON_NAME As String = "txtBox"
Dim index As Long
For index = startWithTextBoxNr + 1 To TEXTBOX_COUNT
With Me(COMMON_NAME & index)
.Visible = Not IsNull(Me(COMMON_NAME & index - 1).Value)
If Not .Visible Then .Value = Null
End With
Next index
End Sub
事件处理程序将如下所示:
Private Sub txtBox1_AfterUpdate()
SetTextBoxes 1
End Sub
Private Sub txtBox2_AfterUpdate()
SetTextBoxes 2
End Sub
Private Sub txtBox3_AfterUpdate()
SetTextBoxes 3
End Sub
Private Sub txtBox4_AfterUpdate()
SetTextBoxes 4
End Sub
Private Sub txtBox5_AfterUpdate()
SetTextBoxes 5
End Sub
此外,您可以将SetTextBoxes
添加到表单的Load
事件中,以便为第一个文本框初始化一次控件:
Private Sub Form_Load()
SetTextBoxes 1
End Sub