首先,form2需要知道form1的实例名称,两种办法,把form1句柄放到公共类,或者调用form2时传入(这里假设form2是由form1启动的)。
首先,无论哪种办法,form1中的函数声明为public
第一种办法:
定义一个公共静态类 public static class Common
静态类中定义一个静态变量 public static form1 myform1;
在form1 启动时,将自身对象赋值给公共静态类中的变量 Common.myform1= this;
在form2调用form1时是这样Common.myform1.initial
第二种办法,假设form2由form1启动,在form2中定义一个公共变量,public form1 myform1;
form1中启动form2过程:
form2 = new from2();
form2.myform1 = this
form2.show();
此时,form2中可以用myform1.initial调用
把函数声明为public static,form2里面,用Form1.函数名的方式调用
把方法传过去
form2 添加委托
delegate void MyDel(bool b)
添加一个button 改button_click事件
if(MyDel!=null) MyDel(true);
form1 需要把这个方法传递过去
需要form2在添加一个方法
void SetHandler(MyDel del)
当然还有更好的办法,委托也可行,但最好用事件
把form1作为参数,传递给form2