2017-07-23 2 views
0

Lassen Sie uns sagen, ich habe mehrere TextBoxs und ich möchte Zahlen wie diese verketten. Dann möchte ich etwas Text hinzufügen. Ist das irgendwie möglich? Das ist, was ich habe, so weit:Ändern Sie die Textbox1.text in Textbox2.text

for (int i = 0; i<5; i++) 
{ 
    string str = "Textbox" + i.ToString(); 
    str.Text = "testing"; 
} 

Ich bin nicht sicher, wie dies zu tun. Kann mir bitte jemand in die richtige Richtung zeigen?

+0

Notieren Sie ein Beispiel, Ihre Frage ist nicht klar. – jAC

+1

Sie können die Kontrolle über ihren Namen finden. https://stackoverflow.com/questions/14510065/how-to-find-a-text-box-by-name-and-write-its-contents-to-a-text-file – lkdhruw

Antwort

0

Vielleicht versuchen die Interpolated Strings

Eine Zeichenfolge wie eine Vorlage Zeichenfolge sucht, die interpolierten Ausdrücke enthält interpoliert zu verwenden. Eine interpolierte Zeichenfolge gibt eine Zeichenfolge zurück, die die interpolierten Ausdrücke, die sie enthält, durch ihre Zeichenfolgendarstellungen ersetzt.

Beispiel:

for (int i = 0; i<5; i++) 
{ 
    str = $"Textbox{i}"; 
    str.Text = "testing"; 
} 
+0

scheint nicht zu funktionieren –

+0

Stellen Sie sicher, dass Sie C# 6.0 oder höher verwenden, da es in dieser Version eingeführt wurde. –

+0

Das wird nicht helfen. 'str' ist immer noch nur eine Zeichenfolge. Das OP möchte eine 'TextBox' –

0

Nun, ist hier eine andere Methode, die Sie verwenden können, werden Sie den Überblick über alle Textfelder in dem Formular zu halten haben und fügen Sie sie in einer globalen Liste.

Dictionary<string,TextBox> texts = new Dictionary<string,TextBox>(); 

Auf Ihrer Formload tun, um diese

foreach (Control c in this.Controls) 
    if (c.GetType() == typeof(TextBox)) 
     texts.Add(c.Name,(TextBox)c); 

und wann immer Sie eine Textbox erhalten möchten, tun dies

TextBox targetBox; 
texts.TryGetValue("textBox1", out targetBox); 

Ihre for-Schleife wird wie

aussehen
for (int i = 0; i<5; i++) 
{ 
    string str = "Textbox" + i.ToString(); 
    TextBox targetBox; 
    texts.TryGetValue(str, out targetBox); 
    targetBox.Text = "testing"; 
} 

Ein Vorteil dieses Ansatzes ist, dass Ihre gesamte Textbox (jedes Steuerelement für diese Angelegenheit) in einem Wörterbuch gespeichert ist, so dass Sie nachschlagen können, selbst wenn die Textfelder keinem generischen Benennungsschema folgen.

Verwandte Themen