Mit dynamisch erstellten controls in C#
Erstelle ich eine Anwendung, wo ein Benutzer-input-Sorten und das Programm wird die Ausgabe der gewichtete Durchschnitt. Auf laden, es wird die Frage nach der Anzahl der Kategorien für die Zuordnungen. Das Programm wird dann dynamisch erstellen Textfelder für den Benutzer zur Eingabe von Informationen. Das problem ist, dass ich kann nicht herausfinden, wie zu Lesen der text, der eingegeben, nachdem ich erstelle die Textfelder. Hier ist mein code:
TextBox txtbx = new TextBox();
txtbx.Text = "";
txtbx.Name = "txtbx1";
txtbx.Location = new Point(10, 10);
txtbx.Height = 20;
txtbx.Width = 50;
Controls.Add(txtbx);
Wie ändere ich diesen code, so kann ich den aktuellen text in das Feld, wenn der Benutzer sendet?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie Steuerelemente dynamisch zu generieren, dann offensichtlich Sie nicht in der Lage, um ein Feld für jeden. Aber wenn Sie versuchen, Zugriff auf die Controls-Auflistung für ein benanntes Steuerelement, das ControlCollection können, werden durch den Namen indiziert. Nach dem hinzufügen der text-box mit dem angegebenen Namen, Sie können einfach tun:
Könnten Sie die FindControl Methode der
Page
Klasse.Diese Methode nimmt einen parameter, der die
TextBox
's ID, die Sie bei der Erstellung:Dann können Sie es auswählen:
und verwenden Sie es.
Edit: Seit der ersten Frage fügte hinzu, er bezieht sich auf Windows Forms, meine Antwort oben ist off-topic.
In Windows-Formen, sollten Sie Sie einfach in einer Klasse member-variable statt einer lokalen variable. E. g.:
Dieser code für das Textfeld Dynamisch Hinzufügen Auf die Schaltfläche Klicken Sie auf
Ich hoffe, dieser code hilft Ihnen .
Danke
Happy Coding:)
Halten eine Liste von Referenzen auf alle Textfelder auf dem Formular. Fügen Sie das Textfeld Verweis auf die Liste, wenn du Sie dynamisch erzeugt.
Kann man dann einfach Durchlaufen alle Textfelder in der Liste, wenn Sie wollen, Lesen Sie Ihren text.
Stellen Sie sicher, dass Sie die Namen der Textfelder gemäß Ihrer zugehörigen Kategorie-Namen. Dann Finden Sie auch das Steuerelement in der Liste nach Ihrem Namen.
Alles, was Sie tun müssen, ist richten Sie ein OnClick-listener für Ihre senden-Schaltfläche und haben Sie so etwas tun
Müssen Sie halten eine Referenz auf das Textfeld, nachdem Sie es schaffen.
yourText
enthält den Wert, den Sie brauchen. Hoffe, das hilft