In Situationen wie dieser speichere ich die Steuerelemente, die ich häufig verwenden möchte, in einer List
oder vorzugsweise ein IEnumerable<>
Sammlung, die ich normalerweise bei der Erstellung oder im Load-Event-Handler des enthaltenen Steuerelements initialisiere (z. B. wenn diese Steuerelemente in einer Form
oder sind von einem GroupBox
). Auf diese Weise hoffe ich, den Aufwand zu verringern, der entsteht, wenn ich diese Steuerelemente jedes Mal suchen muss, wenn ich diese Sammlung benötige. Wenn Sie dies nur einmal tun müssen, würde ich mir nicht die Mühe machen, die buttons
Sammlung.
Also, etwa so:
// 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;
Im Konstruktor oder im Load Event Handler:
this.buttons = this.Controls.OfType<Button>();
Und wenn ich diese Steuerelemente aktualisieren muss, verwende ich einfach diese Sammlung:
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
}