Fiínek Cahů Ответов: 1

Управление пустыми текстовыми полями


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

Что я уже пробовал:

Dim EmptyTextBoxFound As Boolean = False 'Boolean flag for empty textbox 
        Dim EmptyTextBoxName As String = ""
        For Each ctl As Control In Panel6.Controls

            If TypeOf ctl Is TextBox AndAlso ctl.Visible AndAlso ctl.Text.Length = 0 Then
                EmptyTextBoxName = ctl.Name
                EmptyTextBoxFound = True
                Exit For

                If EmptyTextBoxFound = True Then
                    ctl.Select()

                    '.. do whatever you have do
                End If
            End If
            If ctl.Text.Length > 5 Then
                ctl.Select()

            End If
        Next

OriginalGriff

И что же?
Что он делает такого, чего вы не ожидали, или не делает того, что вы сделали?
Что вы пытались выяснить, почему?
Какая помощь вам нужна?

ZurdoDev

Где ты застрял?

Fiínek Cahů

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

Richard Deeming

"Не работает" нам ровно ничего не говорит.

Помните, что мы не можем видеть ваш экран, получить доступ к вашему компьютеру или прочитать ваши мысли. Все, что нам нужно сделать, это то, что Вы нам здесь скажете.

Помогите нам помочь вам, предоставив четкое описание проблемы.

1 Ответов

Рейтинг:
8

CHill60

Причина, по которой ваш код не работает, заключается в том, что вы включили действия, чтобы сделать что-то в цикле. Вы выпускаете Ан Exit For когда вы найдете пустое текстовое поле, так что вы никогда не попадете в строку

If EmptyTextBoxFound = True Then
Это было бы очевидно, если бы вы отладили свой код - если вы не уверены в отладке, то эта статья для вас Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Попробуйте изменить свой код, чтобы он выглядел более похожим на этот:
Dim EmptyTextBoxFound As Boolean = False 'Boolean flag for empty textbox 
Dim EmptyTextBoxName As String = ""
Dim ctl As Control
For Each ctl In Panel6.Controls

    If TypeOf ctl Is TextBox AndAlso ctl.Visible AndAlso ctl.Text.Length = 0 Then
        EmptyTextBoxName = ctl.Name
        EmptyTextBoxFound = True
        Exit For

    End If

Next

If EmptyTextBoxFound = True Then
    ctl.Select()

    '.. do whatever you have do
End If
        
If ctl.Text.Length > 5 Then
    ctl.Select()
End If
Обратите внимание, что я переместил объявление ctl за пределы цикла, чтобы на него все еще можно было ссылаться при выходе из цикла