学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll

  1. 控件dockpanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 一是DockContent,

       DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行浮动和dock的场所,
     DockContent是从form类中继承出来的, 用于提供可浮动的窗口基类. 就是说: DockContent对象可以在DockPanel对象中任意贴边, 浮动, TAB化等.
  2. 引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll。
  3. 工具箱—>右键—>选择项—>.net组件—>浏览—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出现dockPanel。
  4. 将dockPanel拖到窗体Form1上,设置Dock属性,我设置的是:Fill。窗体属性IsMdiContainer:True。
  5. 在代码中修改窗体继承于DockContent。           public partial class Form2 : DockContent
  6. 在主窗体中:

    public partial class Form1 : DockContent
        {
            //子窗体
            private FrmCustomer frmCustomer = new FrmCustomer();
            private b_employee employee = new b_employee ();
    
            public Form1()
            {
                InitializeComponent();
                frmCustomer.Show(this.dockPanel1);
                employee.Show(this.dockPanel1);
                System.Threading.Thread.Sleep(50);
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                Form2 frm = new Form2();
                frm.Show(this.dockPanel1);
                //窗体Form2添加到主窗体左边缘
                frm.DockTo(this.dockPanel1,DockStyle.Left);
            }
    }
  7. 在主窗体中添加右键事件,设置dockPanel的contentMenuScrip为拖拽的menuscrip,窗体添加

     /// <summary>
            /// 关闭所有窗体
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void menu_Window_CloseAll_Click(object sender, EventArgs e)
            {
                CloseAllDocuments();
            }
    
            public void CloseAllDocuments()
            {
                if (dockPanel1.DocumentStyle==DocumentStyle.SystemMdi)
                {
                    foreach (Form form in MdiChildren)
                    {
                         form.Close();
                    }
                }
                    else
                    {
                        IDockContent[] documents=dockPanel1.DocumentsToArray();
                        foreach (IDockContent content in documents)
                        {
                            content.DockHandler.Close();
                        }
                    }
                }
            /// <summary>
            /// 关闭其他窗体
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void menu_Window_CloseOther_Click(object sender, EventArgs e)
            {
                if (dockPanel1.DocumentStyle == DocumentStyle.SystemMdi)
                {
                    Form activeMdi = ActiveMdiChild;
                    foreach (Form form in MdiChildren)
                    {
                        if (form != activeMdi)
                        {
                            form.Close();
                        }
                    }
                }
                else
                {
                    foreach (IDockContent document in dockPanel1.DocumentsToArray())
                    {
                        if (!document.DockHandler.IsActivated)
                        {
                            document.DockHandler.Close();
                        }
                    }
                }
            }
    
            /// <summary>
            /// 找到窗体
            /// </summary>
            /// <param name="text"></param>
            /// <returns></returns>
            private DockContent FindDocument(string text)
            {
                if (dockPanel1.DocumentStyle == DocumentStyle.SystemMdi)
                {
                    foreach (Form form in MdiChildren)
                    {
                        if (form.Text == text)
                        {
                            return form as DockContent;
                        }
                    }
                    return null;
                }
                else {
                    foreach (DockContent  content in dockPanel1.Documents)
                    {
                        if (content.DockHandler.TabText==text)
                        {
                            return content;
                        }
                    }
    
                    return null;
                }
            }
            public DockContent ShowContent(string caption, Type formType)
            {
                DockContent frm = FindDocument(caption);
                if (frm==null)
                {
                    // frm = ChildWinManagement.LoadMdiForm(Portal.gc.MainDialog, formType) as DockContent;
                }
                frm.Show(this.dockPanel1);
                frm.BringToFront();//将控件带到前面
                return frm;
            }
时间: 2024-10-10 16:04:47

学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll的相关文章

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的子窗口提供进行浮动

weiFenLuo.winFormsUI.Docking.dll学习

引用方法: 1.建立一个WinForm工程,默认生成了一个WinForm窗体. 2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll. 3.窗体属性IsMdiContainer:True. 4.工具箱—>右键—>选择项—>.net组件—>浏览—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出现dockPanel. 5.将dockPanel拖到窗体上,设置Dock属性,我设置的是

开源布局控件 WeifenLuo.WinFormsUI.Docking.dll使用

WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为XML文件,可以加载XML配置文件.! 先看一下效果 使用说明: 1.新建一个WinForm程序,创建4个窗体,FrmMain,窗口1,窗口2,窗口3 2.工具箱->选择项->浏览 选择WeifenLuo.WinFormsUI.Docking.dll动态库, 确定后,工具箱中会多出一个DockPanel控件 3.FrmMain窗体设置为MDI窗体, 即IsMdiContainer属性设置为

WeiFenLuo.winFormsUI.Docking.dll的使用(停靠效果)

1.  重置工具箱: 新建一个WinForm程序,项目名称为TestDockPanelControl.选中Form1窗体后选择工具箱--->>新建个添加选项卡命名为WeiFenLuo--->>右键--->>选择项--->>浏览--- >>weiFenLuo.winFormsUI.Docking.dll--->>确定.此时工具箱出现DockPanel控件.这以上步骤仅是把DockPanel控件添加到工具箱中. 1.建立一个WinForm

C#中使用WeiFenLuo.WinFormsUI.Docking.dll实现窗口停靠效果

很酷的效果,很值得好好去学习的哈. 重置工具箱: 新建一个WinForm程序,项目名称为TestDockPanelControl.选中Form1窗体后选择工具箱--->>新建个添加选项卡命名为WeiFenLuo--->>右键--->>选择项--->>浏览--- >>weiFenLuo.winFormsUI.Docking.dll--->>确定.此时工具箱出现DockPanel控件.这以上步骤仅是把DockPanel控件添加到工具箱中.

C# WeifenLuo.WinFormsUI.Docking.dll 应用之问题集 子窗体访问父窗体方法

父窗体内容,需要在子窗体获取的方法为 CheckFormIsOpen private frmMenu frmMenu = new frmMenu(); public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { frmMenu.P_fm = this; frmMenu.Show(this.dockPanelMain); } public bool Check

C# WeifenLuo.WinFormsUI.Docking.dll 应用之问题集 反射动态调用winform窗体

反射通过命名空间.窗体名称,调用窗体 public void OpenChildForm(string formName) { Type t = Type.GetType(formName); Assembly asm = Assembly.GetExecutingAssembly(); DockContent frm = asm.CreateInstance(formName) as DockContent; if (frm != null) { frm.Show(this.dockPanel

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking&quot;的使用 (一)

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一) 编写人:CC阿爸 2015-1-28 在伍华聪的博客中,看到布局控件"WeifenLuo.WinFormsUI.Docking",发现的确是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的今天在这里,我想与大家一起分这一伟大的控件.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 一.引用方法: 1.建立一个WinFo

WeifenLuo.WinFormsUI.Docking&quot;的使用 z

在伍华聪的博客中,看到布局控件"WeifenLuo.WinFormsUI.Docking",发现的确是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的今天在这里,我想与大家一起分这一伟大的控件.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 一.引用方法: 1.建立一个WinForm工程,默认生成了一个WinForm窗体. 2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docki