WinForms Clearing vários Textboxes com um comando
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?
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