То, что я делаю в подобных ситуациях, - это сохранение элементов управления, которыми я хочу часто манипулировать, в коллекцию List
или, предпочтительно, IEnumerable<>
, которую я обычно инициализирую при построении или в обработчике события Load объектаконтроль (например, если эти элементы управления содержатся в Form
или в GroupBox
).Делая это, я надеюсь уменьшить необходимость поиска этих элементов управления каждый раз, когда мне нужна эта коллекция.Если вам нужно сделать это только один раз, я бы не стал добавлять коллекцию buttons
.
Итак, что-то вроде этого:
// the collection of objects that I need to operate on,
// in your case, the buttons
// only needed if you need to use the list more than once in your program
private readonly IEnumerable<Button> buttons;
В конструкторе или обработчике события загрузки:
this.buttons = this.Controls.OfType<Button>();
И затем, когда мне нужно обновить эти элементы управления, я просто использую эту коллекцию:
foreach (var button in this.buttons)
{
button.Text = @"---";
// may wanna check the name of the button matches the pattern
// you expect, if the collection contains other
// buttons you don't wanna change
}