2015-10-26 10 views
0

我创建的窗体设计器16个文本框和想使用数组访问一个TextBox arrary

到目前为止,我已经做到了这一点

public partial class Form1 : Form 
{  
    TextBox[] descrip2Arr; 

    public Form1() 
    { 
     InitializeComponent(); 


     TextBox[] descripArr = { decrip1_Box, decrip2_Box, decrip3_Box, decrip4_Box, 
            decrip5_Box, decrip6_Box, decrip7_Box, decrip8_Box, 
            decrip9_Box, decrip10_Box,decrip11_Box,decrip12_Box, 
            decrip13_Box,decrip14_Box,decrip15_Box,decrip16_Box}; 


     for (int i = 0; i < descrip2Arr.Length; i++) 
      descrip2Arr[i].Text = "Descrip 2 cod " + (i + 1).ToString(); 

    } 
} 

这似乎是工作确定访问它们。 问题是,当我尝试从另一个方法访问数组的某个成员时,该数组为空(null)。 如何创建一个包含我所有文本框的数组,并且可以通过任何方法访问这些数组?

+0

在它看起来像你填充数组构造做到这一点。你试图从这个类中访问它的方法是什么? – JonE

+0

此数组对Form1类是本地的。如果你想从另一个班级访问它,你需要两件事。公开该数组,并为其他类提供正确的Form1实例。然而,这应该以不同的方式使用Form1类中的方法返回其他类需要的内容 – Steve

+0

从TextBox [] descripArr = {...'行中删除'TextBox []',并且您实际上将您拥有的早些时候宣布,而不是创建一个新的。 – TaW

回答

0

您也可以使用列表

List<TextBox> myBoxes = new List<TextBox>(); 

     myBoxes.Add(textBox1); 
     myBoxes.Add(textBox2); 
     myBoxes.Add(textBox3); 
     myBoxes.Add(textBox4); 
     myBoxes.Add(textBox5); 

     myBoxes[0].Text = "Something";