DockPanel 浮动窗体的使用方式

DockPanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 二是DockContent。

DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行浮动和dock的场所,

DockContent是从form类中继承出来的, 用于提供可浮动的窗口基类. 就是说:DockContent对象可以在DockPanel对象中任意贴边, 浮动, TAB化等.

1.建立一个WinForm工程,默认生成了一个WinForm窗体Form1。

2.引用—>添加引用—>浏览—> WinFormsUI.Docking.dll。(.dll 文件为.Net项目中组件样式文件)

3.窗体属性IsMdiContainer设置为True。

4.工具箱—>右键—>选择项—>.net组件—>浏览—> WinFormsUI.Docking.dll—>在工具箱出现DockPanel。

5.将DockPanel拖到窗体Form1上,设置Dock属性,我设置的是:Fill。

停靠窗体:

1.新建一个WinForm窗体Form2。

2.在代码中修改窗体继承于DockContent。

    public partial class Form2 : DockContent

    {

        Form1 form1;

        private DockPanel dp;

        public Form2()

        {

           InitializeComponent();

        }

        public Form2(Form1 fm1)

        {

           form1 = fm1;

            dp =(DockPanel)form1.Controls["dockPanel1"];

        }

    }

3.在主窗体Form1中显示停靠窗体。

private void Form1_Load(object sender, EventArgs e)

{

  Form2 form2 = new Form2();

  form2.Show(this.dockPanel1, DockState.DockLeft);

}

注意项:

拖动:如果你想使你的子窗体可以任意拖动,那么你在设置子窗体的DockAreas属性时,保持默认值,不要修改。

固定:只需设置你窗体的DockAreas为Document就行了

判断Dockpanel中存在多少个子窗体或Contents

foreach (DockContent frm in this.dockPanel1.Contents)
{

     //这样设置后,所有的继承与DockContent的窗体都会被计算在内的

}

你可能感兴趣的:(DockPanel 浮动窗体的使用方式)