子窗体调用父窗体方法
你父窗体
  public partial class MainForm1 : Form
     {
         public MainForm1()
         {
             InitializeComponent();
         }
   private   void CreateFormInstance(string formName)
         {
             try
             {
                 bool flag = false;
                 //遍历主窗口上的所有子菜单
                 for (int i = 0; i < this.MdiChildren.Length; i++)
                 {
                     // 如果所点的窗口被打开则重新激活
                     if (this.MdiChildren[i].Tag.ToString().ToLower() == formName.ToLower())
                     {
                         this.MdiChildren[i].Activate();
                         this.MdiChildren[i].Show();
                         this.MdiChildren[i].WindowState = FormWindowState.Normal;
                         flag = true;
                         break;
                     }
                 }
                 if (!flag)
                 {
                     //如果不存在则用反射创建form窗体实例。
                     Assembly asm = Assembly.Load("GZCRB");//程序集名
                     object frmObj = asm.CreateInstance(formName);//程序集+form的类名。
                     DockContent frms = (Form)frmObj as DockContent;
                     //tag属性要重新写一次,否则在第二次的时候取不到。原因还不清楚。有知道的望告知。              
                     frms.Tag = formName.ToString();
                     frms.MdiParent = this;
                     frms.Show(dockPanel1);
                 }
             }
             catch (Exception ex)
             {
                 MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
             }
         }    
}
MainForm1 的this.IsMdiContainer = true;
子窗体from2怎么调用 MainForm1中 CreateFormInstance()方法
------解决方案--------------------
CreateFormInstance为私有的实例方法,只可以在MainForm内部调用
------解决方案--------------------试试窗体间的事件传递
OptionForm form = new OptionForm();  
//注册事件  
form.OptionSettingChanged += new EventHandler(form_OptionSettingChanged);  
form.ShowDialog();  
可以在百度搜搜。。。。。
------解决方案--------------------直接在窗体1调用窗体2的事件方法是可以实现的。如下,点击窗体1的按钮会调用窗体2的button1_Click方法,而这个方法把Form3显示出来。  
Form1的按钮事件  
private   void   button1_Click(object   sender,   System.EventArgs   e)  
{  
Form2   form2   =   new   Form2();  
form2.button1_Click(this,   EventArgs.Empty);  
}      
Form2的按钮事件  
public   void   button1_Click(object   sender,   System.EventArgs   e)  
{  
form3   =   new   Form3();  
form3.Show();  
}  
将你上面的方法可以定义为类似的某个按钮或控件的事件即可。