Я столкнулся с проблемой, которая, вероятно, встречается довольно часто, но никогда здесь не обсуждалась.
В моем графическом интерфейсе я добавляю элементы управления в цикле for в Flowpanellayout. Дело в том, чтобы отображать «отчеты» из базы данных. Это должно быть динамично, потому что количество отчетов может различаться изо дня в день.
Псевдокод Добавление элементов графического интерфейса:
for(int i = 0; i < reports.Count; i++)
{
TextBox textboxPerson = new TextBox();
textboxPerson.Name = "TextboxName" + i;
textboxPerson.Text = reports[i].Name;
textboxPerson.TextChanged += new EventHandler(this.textboxPerson_TxtChanged);
Label labelToChange = new Label();
labelToChange.Name = "label"+i;
labelToChange.Text = "";
flowlayoutPanel.Controls.Add(textboxPerson);
flowlayoutPanel.Controls.Add(labelToChange);
}
Обработчик событий:
private void textboxPerson_TextChanged(object sender, EventArgs e)
{
//So far, I'm only getting the number of the Textbox that changed.
}
Вот, где мне нужен ваш совет. Текстовые поля и метки совпадают (т.е. вы видите, что Texbox1 подключен к метке 1).
Но как мне обратиться к одному элементу управления в частности?
- Если текст Texbox1 изменяется, как мне обратиться к Label1, чтобы изменить его текст или что-то еще?
- Существуют ли современные технологии добавления динамических элементов графического интерфейса в форму и обработки их?