Hallo Zusammen,
kann mir jemand bei meinem Problem helfen. Ich versuche eine bestimmte Anzahl an erzeugten TextBox, den Text in eine List zu laden. Mit:
CommentList = new List<TextBox>();
for (int j = 0; j < NewOACount; j++)
{
TextBox check = new TextBox();
CommentList.Add(check);
}
TextBox[] commentListTb = CommentList.ToArray();
for (int i = 0; i < NewOACount; i++)
{
commentListTb[i].BorderStyle = BorderStyle.FixedSingle;
//commentListTb[i].TextAlign = ContentAlignment.MiddleCenter;
commentListTb[i].Margin = new Padding(0, 0, 0, 0);
commentListTb[i].Text = NewOAComment[i];
commentListTb[i].Location = new System.Drawing.Point(56 + 161, 0 + i * 20);
commentListTb[i].Name = NewOAComment[i];
commentListTb[i].Size = new System.Drawing.Size(265, 10);
//flowLayoutPanel1.Size = new System.Drawing.Size(266, NewOACount * 20);
//flowLayoutPanel1.Controls.Add(commentListTb[i]);
//panel1.Size = new System.Drawing.Size(266, NewOACount * 20);
panel1.Controls.Add(commentListTb[i]);
}
erstelle ich die TextBoxen und möchte anschließend den Text dann bearbeiten. Nach der Bearbeitung will ich die Texte durch Click dann in einer List zu laden. Mir ist aber unbekannt wie ich das machen kann, da ich die Anzahl nicht kenne.
LG wbach
Hallo,
in C# gibt es das foreach-Statement, um eine Collection vollständig zu durchlaufen, unabhängig von der Zahl der Einträge.
Bei Dir also sowas wie:
var textList = new List<string>();
foreach(TextBox currentTb in commentListTb)
{
// mach was mit currentTb, z.B.:
textList.Add(currentTb.Text);
}
Wenn Du nur den Text auslesen und in eine neue Liste packen willst, wird es mittels Linq-Extensions noch einfacher:
var textList = commentListTb.Select(tb -> tb.Text).ToList();
Gruß, MarsStein
EDIT: beachte aber, dass das absolute Grundlagen sind, die hier im Allgemeinen vorausgesetzt werden.
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo MarsStein,
thx für die Anwort ich versuche das umzusetzen.
Ps: Die Grundlagen fehlen mir. Bin auch kein gelernter Programmierer und seit kurzem erst mit C# tätig
Habe das jetzt so gemacht:
private void button1_Click_1(object sender, EventArgs e)
{
foreach (TextBox currentTb in CommentList)
{
ReplaceOAComment.Add(currentTb.Text);
}
Form1.OAComment = ReplaceOAComment;
}
Funktioniert 😃
Danke