Как ссылаться на имя ListBox, используя строку в Csharp
for (int i=1; i<4; i++)
{
string buttonName = "button" + i;
if (Controls[buttonName].BackColor = Color.Red)
{
Controls[buttonName].Enabled = false;
}
}
Этот код работает отлично. Код проверяет 3 разные кнопки (button1, button2, button3) и, если их цвет красный, они становятся недоступными. На имя кнопки ссылается строка:
Controls[buttonName]
Есть ли способ ссылаться на ListBox, используя строку таким же образом? На что должны быть изменены элементы управления?
1 ответ
Если вы просто хотите просмотреть все списки, вы также можете использовать .OfType<T>()
foreach (ListBox lb in this.Controls.OfType<ListBox>())
{
lb.Enabled = false;
}
... и это, конечно, будет работать так же для .OfType<Button>()
без необходимости называть ваши элементы управления таким образом, чтобы перечислить их.