Есть несколько textbox'ов: TextBoxTovar1, TextBoxTovar2 и т.д. Хочу пробежать по ним циклом:
for (int i = 0; i < count; i++)
{
Fill(TextBoxTovar[i].Text);
}
конструкция с квадратными скобками не работает. Как правильно записать?
Ответ
В WinForms контролы на форме можно искать по имени:
for (int i = 1; i <= count; i++)
{
Fill(((TextBox)Controls["TextBoxTovar" + i]).Text);
}
будут найдены только тектбоксы, лежащие непосредственно на форме. Если нужно искать во другом контейнере (например, панели) - то нужно использовать свойство Controls этого контейнера, а не свойство формы.
Для WPF аналог Controls[name] это метод FindName у окна или любого другого контейнера:
for (int i = 1; i <= count; i++)
{
Fill(((TextBox)FindName("TextBoxTovar" + i)).Text);
}
FindName работает рекурсивно, так что он найдет не только элементы, лежащие на самой форме, но и элементы во вложенных контейнерах.
Комментариев нет:
Отправить комментарий