在C#中,我有一个主窗口main,有两个mdi子窗口f1和f2,现在想在main打开的f1窗口中加一个按钮,点击此按钮打开f2子窗口,效果要与main窗口中直接打开f2效果相同,请高手指点,分数不多,谢谢!补充: f1与f2这两个子窗口必须都在main主窗口里,而非独立出来的窗口。如图:

解决方案 »

  1.   

    f1中:
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.MdiParent = this.MdiParent;
        f2.Show();
    }
      

  2.   

    做一个全局的MainForm指针Sys.MainForm(static)
    在MainFrom的Load事件中(Sys.MainForm = this)
    这样就可以在所有地方通过Sys.MainForm引用主窗体
      

  3.   


    这样虽然可以设置f1和f2都为main的子窗体,但有个2个问题:
    1.如果f1最大化,此时打开f2,那么f2也最大化了。
    2.如果f1窗口原始大小,这时打开f2。f1这时再最大化,再打开f2,f1又成原始大小了。还有怎么区分是按按钮关闭窗口 ,还是按标题栏的关闭按钮呢?不知道有没有办法解决呢?