日期:2014-05-18  浏览次数:20722 次

C# 主窗口和分窗口呼出的问题
现在我将窗口1置为主窗口,窗口2置为分窗口,那么我在主窗口里呼出分窗口2,我已经会了

那么我现在想做另外一种呼出:(差不多,但中间多了一个窗口)如下:

窗口1为主窗口,窗口2为分窗口,窗口3为分窗口
当窗口1的按钮按下时,呼出了窗口2(窗口2为窗口1的子窗口),在窗口2上的按钮按下时,呼出窗口3(窗口3也是主窗口1的子窗口)

这怎么处理?

即,当主窗口呼出子窗口时,倘若中间多了一个其他窗口来中转(通过这个窗口的按钮来呼出最终想要的窗口),呼出的最终的窗口依然与主窗口1保持主从关系,而与中转的分窗口2保持并列关系!

哪个请问这怎么处理??

当我只有2个窗口时(主窗口和分窗口),我可以用this来代表主窗口,“Form2 form2=new Form2();”然后form2代表子窗口;

但是当我有三个窗口时(如上所述),子窗口好办:,“Form3 form3=new Form3();”然后form3代表最终的子窗口,但主窗口怎么办呢? 
this不行:因为this表示的是中转的窗口(窗口2);
Form1不行:提示错误:”Form1是类型,但此处被当做变量来使用“
Form1 form1=new Form1()不行:因为这样会把主窗口初始化,导致整个程序初始化

请问有什么办法呢??



------解决方案--------------------
你可以给新窗体传递一个Parent参数,新窗体创建时,parent设置为这个参数即可
------解决方案--------------------
Form:CompanyUI

public Form com_UI;

com_UI.Show();
this.Close();

Form:Main
CompanyUI cui = new CompanyUI();
cui.com_UI = this;
cui.Show();