程序中有三个窗体,f1,f2,f3
f1为主窗体,f2,f3为副窗体
在f1中
f2 f2 = new f2();
f1.可以点出来f2上的控件,但是我在f2中
f3 f3 = new f3();
f3.却点不出f3上的控件,这是怎么回事?
而我在f3中
f2 f2 = new f2();
f2.却可以点出f2上的控件,这是为什么?
还有,如果我不用From fm = new From();可以实现跨窗体操作控件和变量么?如果可以,请给出个方法可以么?我考虑过遍历,但是太麻烦了,C#不提供指针,每次都遍历好麻烦,有没有什么简单的办法?

解决方案 »

  1.   

    1.怪哉,控件都是某一个form里面的私有变量,除了在form类里面可以点出来,你确定在外部也可以点出来?
    2.要跨窗体操作控件一般就是委托或者事件来完成的。
      

  2.   

    如果我不用From fm = new From();可以实现跨窗体操作控件和变量么
    ---
    那只能将那变量弄成PUBLIC的
      

  3.   

    f1为主窗体,f2,f3为副窗体 
    在f1中 
    f2 f2 = new f2(); 
    f1.可以点出来f2上的控件
    这个可能吗?
      

  4.   

    f1为主窗体,f2,f3为副窗体 
    在f1中 
    f2 f2 = new f2(); 
    f1.可以点出来f2上的控件可能嘛?
      

  5.   

    如果想仅仅方便传递变量可以用public或者静态变量
      

  6.   

    把控件的modifier属性设为public
      

  7.   

    可以使用参数的传递,将你的FORM做为一个参数传过去,在其他的FORM里用
      

  8.   

    一语惊醒梦中人……谢谢了,因为我这个项目是模块化的,控件我直接copy过来的,第三窗体上的是现拖的,忘了设置了,自己的问题,呵呵,就是public谢谢了~
    我的问题没有错,楼上几位可以试试From1 f1 = new From1();//窗体实例化
      

  9.   

    如果我不实例化新窗体能不能达到一样的效果呢,进行跨窗体来操作控件?而且,还有一点不是很清晰,new出一个新的实例化窗体,是不是又占用一块内存空间呢?直到窗体关闭才能彻底释放资源呢?
    有哪位能给个跨窗体操作窗体、控件、变量的例子呢?谢谢了!
    ps:要求用最少的资源,切换窗体的时候不能关闭,只能是隐藏。