Ich bin ziemlich sicher, dass Sie jede Textbox anders behandeln werden. Zum Beispiel ist der Textwert eines Textfelds für den Vornamen, der nächste für den Nachnamen usw. Sie brauchen also nicht nur den Namen der Textbox, sondern auch etwas anderes. Hier ist ein Code, wo ich einige Textfelder in einer Schleife erzeuge. Ich gebe ihnen Namen und dann füge ich ihnen einen Event-Handler hinzu. Im Handler treffe ich die Entscheidung, was mit dem für den Text eingegebenen Wert geschehen soll. Sie sollten Ihren Textfeldern je nach Ihren Anforderungen aussagekräftigere Namen geben.
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;
}
}
Warum legen Sie die Namen der Textfelder nicht explizit fest, wenn Sie sie erstellen? Obwohl ich nicht sicher bin, warum Sie auf sie mit Namen zugreifen müssen, wenn Sie nicht einmal wissen, wie viele es gibt. Zählen Sie einfach die untergeordneten Elemente des Bereichs auf, um die Textfelder zu erhalten. Oder speichern Sie sie in einem Array, wenn Sie sie erstellen und über das Array darauf zugreifen. – itsme86