Я довольно конечно, вы будете обрабатывать каждое текстовое поле по-разному. Например, текстовое значение одного текстового поля будет для имени, следующего для имени и так далее. Поэтому вам нужно не только имя текстового поля, но и сделать что-то другое для каждого из них. Вот некоторый код, в котором я генерирую некоторые текстовые поля в цикле. Я даю им имена, а затем добавляю к ним обработчик событий. В обработчике я принимаю решение о том, что делать со значением, введенным для текста. Вы должны указать свои текстовые поля более описательным именам в зависимости от ваших потребностей.
public Form1()
{
InitializeComponent();
for (int i = 0; i < 5; i++)
{
var txtBox = new TextBox();
txtBox.Name = "TextBox" + i;
txtBox.TextChanged += TxtBox_TextChanged;
this.tableLayoutPanel1.Controls.Add(txtBox);
}
}
private void TxtBox_TextChanged(object sender, EventArgs e)
{
var txtBox = sender as TextBox;
string firstName = string.Empty;
string lastName = string.Empty;
switch (txtBox.Name)
{
case "TextBox1":
firstName = txtBox.Text;
break;
case "TextBox2":
lastName = txtBox.Text;
break;
// more cases here but you get the point...
default:
break;
}
}
Почему бы не указать имена текстовых полей при их создании? Хотя, я не уверен, почему вам нужно будет обращаться к ним по имени, когда вы даже не знаете, сколько их там. Просто перечислите дочерние элементы панели, чтобы получить текстовые поля. Или сохраните их в массиве при их создании и получите доступ к ним через массив. – itsme86