请看:
    public void get_tab3( ArrayList al)
{   Point p=new Point(0,305);
    for(int i=0;i<al.Count;i++)
   {    tableuser3 tab3=new tableuser3(); 
       //tableuser3为自定义控件,里面含有public textBox1 成员
        arraylist.Add(tab3);
       ((tableuser3)arraylist[i]).Location=p;
   ((tableuser3)arraylist[i]).textBox1.Text=((MyComponent)al[i]).stepNo.ToString();  
//MyComponent 为自定义的类,有成员stepNo为int ,同时也是出错行,"不能访问textBox1,受保护级别限制"
       
       this.Controls.Add((tableuser3)arraylist[i]); 
       p.Offset(0,32);
    }

}可是在tableuser3控件里, 成员textBox1明明是public 的啊,为什么不能访问呢? 

解决方案 »

  1.   

    你确定 ((tableuser3)arraylist[i])arrayList[i]中的对象是 tableuser3吗?
      

  2.   

    可是我在arrayList[i]中放的就是 tab3啊,而tab3是用tableuser3 new过的啊 
      

  3.   

    那我再问一下:
    namespace1 { class1 }
    namespace2 {class2 }
    我如何在class2里定义class1的对象?或者说如何在class2里识别class1? 
    其实是我在怀疑下面语句中的MyComponent类
    ((tableuser3)arraylist[i]).textBox1.Text=((MyComponent)al[i]).stepNo.ToString();  
      

  4.   

    我把tableuser3控件的程序改了一下,现在问题是不能识别MyComponent这个类
    说明一下:MyComponent是定义在另外一个控件里的类
    但是我引用包含该类的控件时又说:
    警告: 不能将项目“TableControl”中的依赖项“table3, Version=1.0.1942.28533, Culture=neutral”复制到运行目录,因为它将改写引用“table3, Version=1.0.1945.17869, Culture=neutral”。table3 为控件tableuser3的namespace
      

  5.   

    to zhuyun1111(雨漠), 你是不是有两个项目出现循环引用了?即项目1引用项目2中的一个类,项目2又引用了项目1 中的某一个类?
      

  6.   

    to tiaoci(我挑刺,我快乐) 
    恩,不过那个是警告,编译还是可以通过的。出错是在控件tableuser3里,调着调着就发现错在哪了。谢谢各位了,开心散发!
      

  7.   

    没有qq :(,  [email protected]
      

  8.   

    这次我死了,程序开始报错:
    错误: 不能将项目“MyUserControlnew”中的依赖项“MyUserControl, Version=1.0.1946.18923, Culture=neutral”复制到运行目录,因为它将与依赖项“MyUserControl, Version=1.0.1946.16487, Culture=neutral”冲突。循环调用控件还是会出错啊?但我在控件1要调用控件2的东西,在控件2又要调用控件1的,怎么办啊?
      

  9.   

    我有办法了,只是要多做点体力活,把控件1的传值函数分解成多个小的函数(这样参数都是些int,string 等),这样在控件2就可以识别了。呵呵!