2012-04-06 79 views
-2

我試圖用這樣的文本框的屬性:C# - 級聯和

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

對此有任何解決方案?我想用i作爲索引,就好像我有一個TextBox的數組。我怎樣才能實現這樣的文本框的Text屬性?

我想創建一個名爲x1,x2,x3,x4 ...和x1 = TextBox1.Text的值的字符串。 但我不能:(

我有TextBox1,2,3 ... 40,我只是想將他們的文本值傳遞給新的字符串或字符串列表例如x1 = TextBox1.Text,x2 = TextBox2。文本; .....(

+3

你應該解釋這個問題。你究竟在做什麼? – 2012-04-06 13:32:25

+0

你是什麼意思由字符串x +我在一個循環內?字符串[]? – MrJames 2012-04-06 13:34:11

+1

應該指出,你的代碼不能編譯。我冒昧地清理它並重新描述你的問題,我相信你是想索引一個'TextBox'數組。 – Yuck 2012-04-06 13:34:23

回答

1

您正試圖從TextBox的集合中獲得Text屬性 - 順便說一下,您沒有向我們展示您獲得的方式。甚至不TextBox陣列

如果你這樣做,你會使用這樣的代碼(注意:SomeCodeToGetTextBoxArray()需要由你來定義):

TextBox[] myTextBoxes = SomeCodeToGetTextBoxArray(); 
var arrayLength = myTextBoxes.Length; 
String[] x = new String[arrayLength]; 
for (int i = 0; i < arrayLength; i++) 
{ 
    x[i] = myTextBoxes[i].Text; 
} 
+0

我有一種感覺,他沒有一個'TextBox'數組,這將導致他需要反思。但是我仍然會贊成你的回答,因爲他真的**應該使用數組(或'List ')來代替。 – 2012-04-06 13:47:01

1

你要做的是通過它在運行時生成的字符串名稱引用局部變量,字段或屬性。做你想做的唯一方法就是使用反射。

根據變量是否在本地作用域,字段成員或屬性成員,有多種方法可以執行此操作。

反思 - LocalVariableInfo - FieldInfo - PropertyInfo


注意的是,雖然這將是回答你的問題,它可能是更好的使用數組(或List<T>),並使用索引。但是,如果不知道自己想要做什麼(不僅僅是在你的小片段中),真的不可能知道。但是,更可能的是一個數組(或List<T>)是更正確的解決方案。