我在form里面添加了dataGridView这个控件,命名为dataGridView1;
这是我在工程里面新建了一个类命名为newclass1
请问我能不能在newclass1里面引用到dataGridView1;
如果可以怎么做?

解决方案 »

  1.   

    dataGridView1的modifiers属性设置成为public
      

  2.   

    设置了,可是还是报“上下文中不存在名称dataGridView1”
      

  3.   

    这个是可访问性 问题。保证 newclass1 和 form是一个命名空间里。
    然后 dataGridView1的modifiers属性设置成为public
    然后 new 一个 form 的对象,在访问 他的 dataGridView1 成员,
      

  4.   

    在构造函数中加入引用对象using System.Drawing;
    using System.Text;
    using System.Windows.Forms;class newclass1
    {
       private DataGridView grd;
       public newclass1(DataGridView grd)
       {
         this.grd=grd;
       }
       
       //设置行数示例
       public void SetRowCount(int Count)
       {
          this.grd.RowCount=Count;
       }
    }在form调用时 newclass1 dd =new newclass1(dataGridView1);
     dd.SetRowCount(10);
        
      

  5.   

    将 子控件的 访问级别提升, 顶多提升到 protected 级别, 
    如果 public 了, 会让后来维护的人疯狂的其他 class 需要的是 Form(or Control) 的功能接口,
    而不是需要知道上面一个具有特定名称的控件.测试时可以这样办理.
      

  6.   

    谢谢各位的帮助,
    4楼说的对是一个可访问的问题
    我的这个类跟form不是一个命名空间
    不过这个问题经你这么一提醒我已经解决了。
      

  7.   

    你把dataGridView1作为参数传递给newClass1 不久可以了吗!
      

  8.   

    在newclass1中添加dataGridView1所在类的引用