WeifenLuo.WinFormsUI.Docking.dll是一个WinForm界面布局控件,这个控件简单易用且强大。
接下来以在CLR中使用该控件进行界面布局为例来说明其使用过程:
1. 首先在网上下载WeifenLuo.WinFormsUI.Docking.dll文件
2. 在VS中新建CLR下的Windows Forms Application工程,然后在项目中引入该控件,步骤是:(1)在工程的References中添加该DLL的引用;(2)在工具箱中显示添加该控件:右键ToolBox空白处,选择“Choose Items”,点击“Browse…”,选中你本地的WeifenLuo.WinFormsUI.Docking.dll文件,点击“打开”,单机“OK”,这时候ToolBox的General下会多出一个名为DockPanel的控件项,记为我们将要使用的布局控件。
3. 在工程中Add几个Form窗体,分别命名为FormLeft、FormRight、FormBottom、FormFill,我们将把他们分别布局在主窗体(新建工程时默认创建的窗体,默认命名为Form1)的左边、右边、下面和中间。
4. 将DockPanel控件拖放入Form1窗体,名字采用默认的dockPanel1,将其Dock属性调整为Fill。将Form1的IsMdiContainer设置为True,表示设置为多文档窗体。
5. 在FormLeft的代码中添加对布局控件的引用:
using namespace WeifenLuo::WinFormsUI::Docking;
在代码中手动将class FormLeft的基类改成DockContent。在FormLeft的窗体属性中将ShowHint设为DockLeft,ShowHint决定了窗体停靠的位置。
将FormLeft窗体的BackColor换个颜色以示区分。
对FormRight、FormButton作类似的操作,分别设置停靠位置为DockRight和DockBottom。
FormFill窗体用于放置在中间位置,其属性设置为:DockAreas: Document(手动修改)、HideOnClose:True、ShowHint:Document。
6. 在主窗体Form1中添加这几个停靠窗口:
首先引入头文件
#include "FormLeft.h"
#include "FormRight.h"
#include "FormBottom.h"
#include "FormFill.h"
然后定义停靠窗体对象:
private:
FormLeft^m_formLeft;
FormRight^m_formRight;
FormBottom^m_formBottom;
FormFill^m_formFill;
然后在构造函数中:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
m_formLeft= gcnew FormLeft();
m_formRight= gcnew FormRight();
m_formBottom= gcnew FormBottom();
m_formFill= gcnew FormFill();
m_formFill->Show(dockPanel1);
m_formLeft->Show(dockPanel1);
m_formRight->Show(dockPanel1);
m_formBottom->Show(dockPanel1);
}
7. 运行程序,截图: