/ / Як отримати вибір з динамічно створених списків з змінними іменами - c #, winforms

Як отримати вибір з динамічно створюваних списків з іменами змін - c #, winforms

foreach (Control ctrl in Controls)
{
if(ctrl is ListBox)
{
string selectedtext = ctrl.GetItemText(ctrl.SelectedItem);
}
}

Отримання наступного повідомлення

Контроль не містить визначення для "GetItemText" і жодного методу розширення для "SelectedItem"

Складові списки створюються з назвою LTBitemXX

Відповіді:

1 для відповіді № 1

The ctrl змінна оголошена типу Control, тож ви не можете використовувати що-небудь конкретне для похідного класу.

Щось подібне буде працювати, хоча:

foreach (Control ctrl in Controls)
{
ListBox lb = ctrl as ListBox;
if(lb != null)
{
string selectedtext = lb.GetItemText(lb.SelectedItem);
}
}

1 для відповіді № 2
foreach (Control ctrl in Controls)
{
if(ctrl is ListBox)
{
string selectedtext = ((ListBox)ctrl).GetItemText(ctrl.SelectedItem);
}
}

Ви також можете використовувати Linq для отримання елементів керування вказаного типу

foreach (ListBox listbox in Controls.OfType<ListBox>())
{
string selectedtext = listbox.GetItemText(listbox.SelectedItem);
}