最近在学习Sharpdevelop的过程中,看到了使用的很好的winform页面布局控件,感觉非常的不错。实现效果如下所示:
这里我就简单的下一下他的实现步骤,当中我也看考了其他人的博客。
1) 创建一个windows Form的应用程序
2) 添加引用:WeifenLuo.WinFormsUI.Docking
他是一个DLL文件,可以自行从网络上下载。
3) 设置Form1窗体作为父窗体容器。设置它的:isMdiContainer属性为:true
4) 工具箱—>右键—>选择项—>.net组件—>浏览—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出现dockPanel
5) 将DockPanel控件拖放到Form1窗体中,并设置它的dock属性为Fill
6) 添加一个新的Form窗体,命名为child_1,进入后台代码,添加下面的命名空间:
using WeifenLuo.WinFormsUI.Docking;
修改child_1窗体集成的基类为:DockContent
public partial class child_1 :DockContent
7) 同理创建另一个新窗体,命名为child_2,后面的操作同child_1相同,都是添加命名空间,以及修改继承的基类
8) 进入form1的后台代码,在他的窗体加载事件中添加如下的代码
private void Form1_Load(object sender, EventArgs e)
{
child_1 b = new child_1();
b.Show(this.dockPanel1);
b.DockTo(this.dockPanel1, DockStyle.Fill);
child_2 c = new child_2();
c.Show(this.dockPanel1);
c.DockTo(this.dockPanel1, DockStyle.None);
}
9) 运行程序,效果如上图所示。
PS:这里仅仅是简单的介绍了一下如何创建类似的布局。还有很多的东西需要在深入的学习。
PS: b.DockTo(this.dockPanel1, DockStyle.Fill);该行代码是设置子窗体的停靠方式的,这里设置的停靠方式为Fill,不过该控件还有其他的停靠方式:比如:bottom,left,top,right,none等方式,我们设置不同的属性,就会有不同的停靠效果。
PS:如果dockPanel嵌套在另1个容器控件上(如:panel),将dockPanel属性DocumentStyle设置为:DockingWindow/DockingSdi