我在Design的界面下添加了textBox1,textBox2……N个控件
然后在code的界面下又定义了textBox[][] t=new textBox[2][];
……
t[0][0]=this.textBox1;但调试的时候系统就提示错误:object reference not set to an instance of an object。请问我该如何该代码,使textBox1,textBox2……能变成一个控件数组?

在VS2005的Design界面能直接定义控件数组吗?

解决方案 »

  1.   

    因为你定义的是多维数组。t[0][0]是第0纬度的第0元素。用之前必须先把那个纬度定义出来
    TextBox[][] t = new TextBox[2][];
    t[0] = new TextBox[3];
    t[0][0] = new TextBox();
      

  2.   

    .net没有vb那样的控件数组不过为什么要用多维?1纬就可以当控件数组用了 TextBox[] t = new TextBox[10];
      

  3.   

    在.NET中是不需要象在VB6中那样创建控件数组的,因为比如所有的button的Click事件其实都是调用的一个委托
    即this.button1.Click += new System.EventHandler(this.button1_Click);这其实也是一个多播委托,在看看
    事件方法的结构
     private void button2_Click(object sender, EventArgs e)
            {
                this.Close();
            }object sender这个参数就是表明是哪个对象调用的这个方法,那么就可以多个Botton调用一个方法,用object判断是
    哪个对象掉用的,比如 (button)object.Name=="btnOk"来判断。这不就实现了控件数组的效果了吗?
    大概是这个意思,不知道说明白没有。具体可以参考c#的委托与事件的详细说明还有一种方法,可以自己定义一个数组,数组类型就是你所要的控件类,比如Botton[] bottonTest