问题描述
比如窗口左边是Tree,右边根据Tree的不同事件,显示不同的子窗口比如MFC写的如下:1:2:
解决方案
解决方案二:
每个子节点定义好相应的NavigationUrl(记得不是很清楚),即可实现点击跳转
解决方案三:
publicclassForm1{SplitContainersp=newSplitContainer();TreeViewtree=newTreeView();privatevoidForm1_Load(objectsender,System.EventArgse){tree.Nodes.Add("Form1");tree.Nodes.Add("Form2");tree.Nodes.Add("Test");sp.Panel1.Controls.Add(tree);tree.Dock=DockStyle.Fill;this.Controls.Add(sp);sp.Dock=DockStyle.Fill;tree.AfterSelect+=AfterSelect;}privatevoidAfterSelect(objectsender,TreeViewEventArgse){sp.Panel2.Controls.Clear();switch(e.Node.Text){case"Form1":Formfrm=newForm();frm.Text=e.Node.Text;frm.TopLevel=false;sp.Panel2.Controls.Add(frm);frm.Show();break;case"Form2":Formfrm=newForm();frm.Text=e.Node.Text;frm.TopLevel=false;sp.Panel2.Controls.Add(frm);frm.Show();break;default:Formfrm=newForm();frm.Text="Test";frm.TopLevel=false;sp.Panel2.Controls.Add(frm);frm.Show();break;}}}
解决方案四:
实现类似功能的几种方式,供参考----------------------------------1.使用TabControl右边放置TabControl。使用不同的TabPage显示对应的数据。可以调整界面不让显示TabPage突出来的选项卡头。2.使用Control进行Z轴排列使用Control.BringToFront方法来在Z轴方向上进行显示调整。也就是说右边是好多控件件比如(Panel)按Z轴进行重叠,根据左边进行显示调整。如果想使用窗体,可以把窗体添加到容器中,以下是实例代码,//WinForm嵌入panelForm2form=newForm2();form.FormBorderStyle=FormBorderStyle.None;form.TopLevel=false;this.panel1.Controls.Add(form);form.Show();3.使用第三方组件一般的第三方的WindowsForms组件都提供了DockPanel的组件,功能方式就像VSIDE中的开发界面,可以进行灵活拖动,停靠以及独立窗口显示。推荐一款用的比较多的开源组件,dockpanelsuite,以下是网站地址,提供完整示例和源代码,http://sourceforge.net/projects/dockpanelsuite/===============================================以上实现对右边的对象进行惰性加载性能会更好。