Pergunta

Eu tenho várias caixas de texto em um formulário, e tem um botão que insere todos os valores em um banco de dados e eu tenho que limpar o conteúdo de todas as caixas de texto e foco para a primeira logo após pressionar o botão.

Agora eu posso facilmente fazer isso usando o método Clear de cada uma das caixas de texto, mas é preciso 10-12 linhas de código apenas para isso. Eu posso fazer isso de uma só vez?

Foi útil?

Solução

A partir do seu recipiente (por exemplo, o Form), percorrer a coleção de controles e testar se uma criança é um TextBox. Se assim for, lançá-lo e, em seguida, limpar o texto. Em VB.NET aqui é algum código:

    For Each c As Control In Me.Controls
        If TypeOf c Is TextBox Then
            DirectCast(c, TextBox).Text = ""
        End If
    Next

Você também pode fazer uma versão recursiva deste modo que se você tem os controles que podem conter outros controles, eles são processados ??também.

Outras dicas

For Each control In form.Controls
    If TypeOf control Is TextBox Then
        CType(control, TextBox).Clear()
    End If
Next
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top