界面布局控件WeifenLuo.WinFormsUI.Docking

最近在学习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,不过该控件还有其他的停靠方式:比如:bottomlefttoprightnone等方式,我们设置不同的属性,就会有不同的停靠效果。

PS:如果dockPanel嵌套在另1个容器控件上(如:panel),将dockPanel属性DocumentStyle设置为:DockingWindow/DockingSdi

 

原文地址:https://www.cnblogs.com/xingchen/p/1930159.html