Если текстовое поле содержит текст, отобразите второе текстовое поле под ним, иначе скрывайте второе текстовое поле - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть несколько текстовых полей друг под другом.Я бы хотел, чтобы все они были скрыты, кроме первого.Если в первом поле есть текст, тогда должно отображаться второе поле.Если во втором поле есть текст, то появится третье поле.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Учитывая, что ваши текстовые поля имеют имена от 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
0 голосов
/ 19 сентября 2019

Вы можете использовать событие AfterUpdate текстового поля, здесь для первого:

Me!TextBox2.Visible = Not IsNull(Me!TextBox1.Value)

и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...