2012-04-06 13 views
-2

Ich versuche, so etwas zu verwenden:C# - Verkettung und Eigenschaften von TextBox

for (int i = 0; i < 40; i++) 
{ 
    string x + i = TextBox + i.Text; 
} 

Gibt es eine Lösung für dieses? Ich möchte i als Index verwenden, als ob ich ein Array von TextBox hätte. Wie kann ich die Texteigenschaft eines Textfelds wie folgt erreichen?

Ich möchte zum Beispiel eine Zeichenfolge mit dem Namen x1, x2, x3, x4 ... und Wert von x1 = TextBox1.Text erstellen. Aber ich konnte nicht :(

Ich habe TextBox1,2,3 ... 40 und ich möchte nur ihre Textwerte an neue Zeichenfolge oder String-Liste ex übergeben. Wie x1 = TextBox1.Text, x2 = TextBox2. Text; ..... :(

+3

Sie sollten das Problem erklären. Was versuchst du eigentlich zu tun? –

+0

Was meinst du mit String x + i in einer Schleife? Zeichenfolge []? – MrJames

+1

Es sollte beachtet werden, dass Ihr Code nicht kompiliert. Ich habe mir die Freiheit genommen, es aufzuräumen und Ihre Frage neu zu formulieren, was ich glaube, dass Sie in ein Array von 'TextBox' indexieren wollen. – Yuck

Antwort

1

Sie versuchen, die Eigenschaft aus einer Sammlung von TextBox zu bekommen - die, nebenbei bemerkt, Sie haben uns nicht gezeigt, wie Sie bekommen. Es ist möglich, dass Sie nicht einmal haben eine Reihe von TextBox

Wenn Sie das tun, können Sie folgenden Code verwenden würde (beachten Sie, dass SomeCodeToGetTextBoxArray() Bedürfnisse von Ihnen festgelegt werden.):

+0

Ich habe das Gefühl, er hat nicht eine Reihe von 'TextBox'es, die ihn dazu führen würde, Reflexion brauchen. Aber ich werde immer noch aufheben, dass du antwortest, weil er wirklich ** stattdessen Arrays (oder "Liste ") verwenden sollte. –

1

Was Sie suchen, ist eine Referenz auf eine lokale Variable, ein Feld oder eine Eigenschaft, deren String-Name zur Laufzeit generiert wird. Die einzige Möglichkeit, das zu tun, was Sie wollen, ist die Reflexion.

Je nachdem, ob es sich bei der Variablen um einen lokalen Bereich, ein Feldelement oder ein Eigenschaftenelement handelt, gibt es verschiedene Möglichkeiten.

Reflection - LocalVariableInfo - FieldInfo - PropertyInfo


Beachten Sie, dass, während die Antwort auf Ihre Frage wäre, ist es wahrscheinlich besser, ein Array (oder List<T>) und Indizes zu verwenden. Allerdings ist es wirklich unmöglich zu wissen, ohne zu wissen, was Sie versuchen, vollständig zu tun (nicht nur in Ihrem kleinen Schnipsel). Aber es ist wahrscheinlicher, dass ein Array (oder List<T>) die richtige Lösung ist.