2012-04-06 61 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>)是更正确的解决方案。