Winform中DockPanel(引用WeifenLuo.WinFormsUI.Docking.dll组件)的使用
WeiFenLuo.WinFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可实现像Visual Studio的窗口停靠、拖拽等功能。WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为XML文件,可以加载XML配置文件。DockPanel中提供了几个可用的类,重要的有两个:DockPanel和DockContent。DockPanel是从Panel继承出来的,用于为可浮动的dock的子窗口提供进行浮动和dock的场所;DockContent是从Form类中继承出来的,用于提供可浮动的窗口基类。也就是说,DockContent对象可以在DockPanel对象中任意贴边、浮动、TAB化等。
1、新建WinForm窗体
2、修改WinForm窗体属性,设置其为MDI窗体(多文档窗体)
this.IsMdiContainer = true;
this.Name = "MainForm";
this.Text = "MainForm";
3、为MainForm窗体添加菜单栏
4、解决方案管理器-->添加引用-->浏览-->WeifenLuo.WinFormsUI.Docking.dll
5、工具箱-->选择项...-->.Net Framework组件-->浏览-->WeifenLuo.WinFormsUI.Docking.dll
6、拖动工具箱中的DockPanel控件到MainForm窗体,拖动时如出现如下错误:

则 项目属性对话框-->应用程序-->目标框架-->.Net Framework 4,即可解决。
当主窗体需要使用工具栏和状态栏时,需要特别注意控件的放置顺序,确保DockPanel控件是最后一个放上去的控件,否则可能出现局部显示效果有误的情况。
7、设置DockPanel控件Dock属性为Fill
this.dockPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
8、添加两个WinForm窗体,分别为DockPanelFormMain和DockPanelFormSide,在窗体的代码中修改两窗体均继承自DockContent,并修改其FormBorderStyle属性为Fixed3D,设置DockPanelFormMain的BackColor属性为White;
9、在MainForm的Load事件中添加如下代码:
DockPanelFormMain dockPanelMain1 = new DockPanelFormMain();
dockPanelMain1.Show(this.dockPanel1);
dockPanelMain1.Text = "MainPanel1"; DockPanelFormMain dockPanelMain2 = new DockPanelFormMain();
dockPanelMain2.Show(this.dockPanel1);
dockPanelMain2.Text = "MainPanel2"; DockPanelFormSide dockPanelSideLeft = new DockPanelFormSide();
dockPanelSideLeft.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft);
dockPanelSideLeft.Text = "DockPanelLeft"; DockPanelFormSide dockPanelSideRight = new DockPanelFormSide();
dockPanelSideRight.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockRight);
dockPanelSideRight.Text = "DockPanelRight"; DockPanelFormSide dockPanelSideBottom = new DockPanelFormSide();
dockPanelSideBottom.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockBottom);
dockPanelSideBottom.Text = "DockPanelBottom";
10、程序运行效果如下所示:

参考链接:http://www.cnblogs.com/because/archive/2011/12/24/2300316.html
DockPanel Suite相关链接:
GitHub:https://github.com/dockpanelsuite
Winform中DockPanel(引用WeifenLuo.WinFormsUI.Docking.dll组件)的使用的更多相关文章
- 开源布局控件 WeifenLuo.WinFormsUI.Docking.dll使用
WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为XML文件,可以加载XML配置文件.! 先看一下效果 使用说明: 1.新建一个WinForm程 ...
- WeifenLuo.WinFormsUI.Docking.dll的用法
基本框架 说明 weiFenLuo.winFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠.拖拽等功能.Weif ...
- 学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll
控件dockpanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 一是DockContent, DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行 ...
- WeiFenLuo.winFormsUI.Docking.dll的使用(停靠效果)
1. 重置工具箱: 新建一个WinForm程序,项目名称为TestDockPanelControl.选中Form1窗体后选择工具箱--->>新建个添加选项卡命名为WeiFenLuo--- ...
- weiFenLuo.winFormsUI.Docking.dll学习
引用方法: 1.建立一个WinForm工程,默认生成了一个WinForm窗体. 2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll. 3 ...
- C#中使用WeiFenLuo.WinFormsUI.Docking.dll实现窗口停靠效果
很酷的效果,很值得好好去学习的哈. 重置工具箱: 新建一个WinForm程序,项目名称为TestDockPanelControl.选中Form1窗体后选择工具箱--->>新建个添加选项卡命 ...
- WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一)
WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一) 编写人:CC阿爸 2015-1-28 在伍华聪的博客中,看到布局控件"Weife ...
- WeifenLuo.WinFormsUI.Docking"的使用 z
在伍华聪的博客中,看到布局控件"WeifenLuo.WinFormsUI.Docking",发现的确是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件. ...
- Winform- 界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的. 实 ...
随机推荐
- springmvc的xml版本和注解版本
感觉还是注解方式比较实用 xml方式 web.xml <!-- 读取spring mvc的核心配置文件 --> <servlet> <servlet-name>yx ...
- 【AT91SAM3S】ADC中断方式采集数据
板子依旧是英倍特的EK-SAM3S.ADC部分的原理图如下: PB1是一个复用引脚,在这里被用作AD功能,对应芯片上的AD5.即,使用片内ADC的5通道测VR1上2号引脚的电压. 实验采用了SysTi ...
- 面对一个新的MCU,我再也不敢说第一步是点灯了
折腾了几天AT91SAM3S,今天才算是把开发板上的3个LED点亮. 在点亮之前,起码看了百八十页的Datasheet,动用了N次百度. 各种时钟,看门狗,分散加载,中断向量,都得去整.这些都远远超过 ...
- Python正则表达式指南
1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...
- Android 通过按钮弹出系统菜单(通过Button显示菜单)转
myButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { openOpti ...
- git 分批后的数据
如果涉及到大文件的 git 传输, 我们可能会收到下面错误: sourceTree 的错误. 命令行的错误: $ git clone https://********/gopher.git C ...
- js json 与字符串 转换过程由于书写不统一规范引发的一个问题
对于两个字符串: 字符串1:{title:{},tooltip:{trigger:"axis"},legend:{data:["新关注人数"]},calcula ...
- Python基础篇【第2篇】: Python内置函数(一)
Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...
- android Drawable的问题
1.资源解析成Drawable getDrawable(int id); 挺简单一方法,可是 require api 21......如何向下兼容呢???? 幸亏有ContextCompat类...( ...
- 深入理解JS异步编程四(HTML5 Web Worker)
>Web Workers 是 HTML5 提供的一个javascript多线程解决方案,我们可以将一些大计算量的代码交由web Worker运行而不冻结用户界面. 一:如何使用Worker We ...