2010-02-07 10 views
0

У меня есть несколько текстовых полей в форме и есть кнопка, которая вставляет все значения в базу данных, и мне нужно очистить содержимое всех текстовых полей и сфокусироваться на первом сразу после нажатия кнопка.WinForms Очистка нескольких текстовых полей одной командой

Теперь я могу легко сделать это с помощью метода Clear каждого из текстовых полей, но для этого требуется всего 10-12 строк кода. Могу ли я сделать это за один раз?

ответ

3

Из вашего контейнера (например, формы), выполните итерацию через коллекцию элементов управления и проверьте, является ли ребенок текстовым полем. Если да, бросьте его, а затем очистите текст. В VB.NET здесь некоторый код:

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

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

+2

+1 избили меня на 10 секунд –

+0

@ t3rse Почему вы используете DirectCast? Почему бы не сделать что-то вроде c.Text = ""? Я не говорю, что это неправильно, я знаю, что это работает, я просто хочу учиться. Благодаря! –

0
For Each control In form.Controls 
    If TypeOf control Is TextBox Then 
     CType(control, TextBox).Clear() 
    End If 
Next 
Смежные вопросы