Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Unbekannte TextBox.Text anzahl in List laden
wbach
myCSharp.de - Member



Dabei seit:
Beiträge: 20

Themenstarter:

Unbekannte TextBox.Text anzahl in List laden

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3429
Herkunft: Trier -> München

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MarsStein am .
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
wbach
myCSharp.de - Member



Dabei seit:
Beiträge: 20

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
wbach
myCSharp.de - Member



Dabei seit:
Beiträge: 20

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers