四种方案解决Form之间相互访问、参数传递的问题
 
      /* **************************************************************************
      *    
      *     时    间:2006-05-01
      *     程序演示:C#中窗口间的相互访问、参数传递
      *     问题叙述:
      *         如何在一个窗口中访问另一个窗口的成员变量啊?    
      *         例如:在Form1   中   new   了一个Form2  
      *         我想在Form2中来访问Form1中的成员变量A  
      *         该如何写代码啊??  
      *         最关键的是如何获取Form1的实例.
      *     解决方案1:
      *         如果是在两个无关的窗体间要实现上述的访问可以使用Form的Owenr属性
      *         Form1中添加:  
      *         Form2   form2   =   new   Form2();  
      *         this.AddOwnedForm(form2);  
      *         Form2中添加:
      *         Form1   form1   =   (Form1)this.Owner;     //直接将已经存在的Form1form1关联起来
      *         之后就可以适时的访问Form1中的Public变量了。
      *        如果是在MDI窗体间要实现上述的访问可以使用FormParentForm属性  
      *         Form1中添加:  
      *         Form2   form2   =   new   Form2();  
      *         form2.MdiParent   =   this;  
      *         Form2中添加:  
      *         Form1   form1   =   (Form1)this.ParentForm; //直接将已经存在的Form1(MDI主窗口)form1关联起来  
      *         之后就可以适时的访问Form1中的Public变量了
      *     解决方案2
      *         重写Form的构造函数。
      *         例如:从Form1生成Form3,
      *         只要在Form3的构造函数中添加参数,
      *         就可以将Form1中的参数传递给Form3了。
      *         这种传参的方法只能后向传递,不能Form3传给Form1
      *     解决方案3:
      *         运用静态变量。
      *         在公共变量之前加入static修饰,
      *         就可以在不同Form之间相互传递参数,
      *         还可以相互修改。
      *         这种方法的不足是:
      *         如果static修饰的成员过多,将消耗系统资源。
      *     解决方案4:
      *         运用delegate。
      *         这种方法实现技术含量高,建议首先对delegate全面了解。
      *         delegate型别看起来有点像函数声明,但实际上它所定义的型别用来指向一个或多个函数(函数指针只指向一个函数?)
Posted on 2006-11-07 17:09  李通通  阅读(707)  评论(0编辑  收藏  举报