主窗口中用splitcontainer分成了左右两个panel,左边是treeview菜单,treeview事件中通过
frmTest f = new frmTest();
f.TopLevel = false;
f.FormBorderStyle = FormBorderStyle.None;
f.Dock = DockStyle.Fill;
this.splitContainer1.Panel2.Controls.Add(f);
this.splitContainer1.Panel2.Controls.SetChildIndex(f, 0);
f.Show();
打开窗口。
问题:
1、点击treeview菜单:
因为用户需要经常切换多个已打开的窗口,比对数据,所以做成MDI,(ismdiContainer为true),如果没有splitcontainer情况(标准mdi模式下)可以通过设置菜单的windowlist属性在主菜单上显示所有已打开的mdi子窗体,方便切换,但是用上述方法在panel2中打开窗口后,没有自动把打开窗口的名称添加到主菜单。是什么原因?是否应设置f.mdiparent=? 如何设置?使得可以以mdi的方式在panel2中打开窗口?试过写成f.mdiparent=this;打开窗体后没有把窗口名称自动添加到主菜单的“窗口”菜单栏下,这样就无法方便地切换各个已打开的窗口。
2、点击主菜单:
主菜单上通过标准mdi方式打开的窗口显示不出来,似乎被splitcontainer覆盖了,是何原因?
在主菜单的某一菜单项中:
f.mdiparent=this;
f.show;
但窗口名称已自动添加到了“窗口”菜单下,说明窗口实际已经打开,只是看不见。请教做过类似界面的朋友。
frmTest f = new frmTest();
f.TopLevel = false;
f.FormBorderStyle = FormBorderStyle.None;
f.Dock = DockStyle.Fill;
this.splitContainer1.Panel2.Controls.Add(f);
this.splitContainer1.Panel2.Controls.SetChildIndex(f, 0);
f.Show();
打开窗口。
问题:
1、点击treeview菜单:
因为用户需要经常切换多个已打开的窗口,比对数据,所以做成MDI,(ismdiContainer为true),如果没有splitcontainer情况(标准mdi模式下)可以通过设置菜单的windowlist属性在主菜单上显示所有已打开的mdi子窗体,方便切换,但是用上述方法在panel2中打开窗口后,没有自动把打开窗口的名称添加到主菜单。是什么原因?是否应设置f.mdiparent=? 如何设置?使得可以以mdi的方式在panel2中打开窗口?试过写成f.mdiparent=this;打开窗体后没有把窗口名称自动添加到主菜单的“窗口”菜单栏下,这样就无法方便地切换各个已打开的窗口。
2、点击主菜单:
主菜单上通过标准mdi方式打开的窗口显示不出来,似乎被splitcontainer覆盖了,是何原因?
在主菜单的某一菜单项中:
f.mdiparent=this;
f.show;
但窗口名称已自动添加到了“窗口”菜单下,说明窗口实际已经打开,只是看不见。请教做过类似界面的朋友。
我估计问题是在this.splitContainer1.Panel2.Controls.Add(f); 上,把窗口作为控件传给panel2,可能是c#认为这不是打开了一个mdi子窗口