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

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用

(一)

编写人:CC阿爸

2015-1-28

在伍华聪的博客中,看到布局控件"WeifenLuo.WinFormsUI.Docking",发现的确是一个非常棒的开源控件,用过的人都深有体会,该控件之强大、美观、不亚于商业控件。而且控件使用也是比较简单的今天在这里,我想与大家一起分这一伟大的控件。有兴趣的同学,可以一同探讨与学习一下,否则就略过吧。

一、引用方法:

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

2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll。

3.窗体属性IsMdiContainer:True。

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

5.将dockPanel拖到窗体上,设置Dock属性,我设置的是:Fill。在这里要注意,在先增加菜单工具条,后增加dockpanel否则,会出现布局介面显示不全的问题。

以下为具体的设计介面:

左侧加入一窗体,并设计成outlookbar的样式。它其实也是在一个停靠的窗体中的,继承自WeifenLuo.WinFormsUI.Docking.DockContent

二、加入其它两个控件配合介面的设计: (UtilityLibrary+
IrisSkin2)

UtilityLibrary.dll为可以产生outlookbar这样的效果

IrisSkin2.dll为引入皮肤控件

三.设计完成后的介面如下:

四.其它部分就是代码部分:

1.frmmain.cs部分:
private string m_strConfigFile;
        private DeserializeDockContent m_deserializeDockContent;
        public frmMain()
        {
            InitializeComponent();
            InitializeLeftBar();
        }
        private void InitializeLeftBar()
        {
            m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);
            frmTemp = this;
            m_strConfigFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config");
            m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString);
        }
        private IDockContent GetContentFromPersistString(string persistString)
        {
            if (persistString == typeof(frmLeftBar).ToString())
            {
                return frmLeftBar;
            }
            else
            {
                // 可以加的其它子窗体
                return null;
            }
        }

2.加载主窗口
private void frmMain_Load(object sender, EventArgs e)
        {
            globalcolor = System.Drawing.Color.FromArgb(Convert.ToInt32(W1.LoadXmlFileValue("config.xml", "Color", "UserColor")));
            globalcolor2 = System.Drawing.Color.FromArgb(Convert.ToInt32(W1.LoadXmlFileValue("config.xml", "Color", "IMColor")));
            CreditControl = Convert.ToBoolean(C_BaseInfo.GetsysConf().Tables[0].Rows[0]["CreditControl"]);
            //设置时间和日期
            tssl1.Text = "今天日期:" + DateTime.Now.ToString("yyyy-MM-dd");
            tssl2.Text = "登录时间:" + System.DateTime.Now.ToLongTimeString();
            tsslLoginUser.Text = "当前用户:" + " " + frmLogin.C_UserInfo.SysUser;
            MenuStrip ms = (MenuStrip)this.Controls["menuStrip1"];
            ArrayList arr = new ArrayList();
            dsright = C_BaseInfo.UserRight(frmLogin.C_UserInfo);
            GetMenuAllName(arr, null, 0, ms);//调用递归函数
            if (File.Exists(m_strConfigFile))
            {
                dockPanel1.LoadFromXml(m_strConfigFile, m_deserializeDockContent);
            }
            frmLeftBar.Show(this.dockPanel1, DockState.DockLeft);
            this.dockPanel1.BackgroundImage = global::ECM.Properties.Resources.cable_16_92;

}
3.显示子窗口
private ECM.Purchase.frmPO frmpo = null;
        private void mnuPO_Click(object sender, EventArgs e)
        {
            if (FindFormName("frmPO") == null)
            {
                frmpo = new ECM.Purchase.frmPO(this);

frmpo.MdiParent = this;
            frmpo.Show(frmMain.frmTemp.dockPanel1);
            frmpo.Focus();
            }
            else
            {
                Form f = FindFormName("frmPO") as Form;
                f.Focus();
            }

}

以下为其它同学编写有关该控件的技术文档,供大家参考

http://www.cnblogs.com/wuhuacong/archive/2009/07/09/1520082.html

http://www.cnblogs.com/luomingui/archive/2013/09/19/3329763.html

欢迎加入技术分享群!!!!

时间: 2024-10-20 02:04:59

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一)的相关文章

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二)

WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (二) 编写人:CC阿爸 2015-1-29 今天我想与大家继续一起分享这一伟大的控件.有兴趣的同学,可以一同探讨与学习一下,否则就略过吧. 1.    DockPanel的一点点改进: 在浏览网上的一些技术文章发现,的确有些地方还是可以进一步改进,如当双击Tab时,原先是直接把当前Tab所表示的这个窗体,从主窗体的框架上分离现来,成为一个浮动的窗体.这不是我们想要的,有些同学修改源代码,把它改成了双击关

WinForm界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用

http://www.cnblogs.com/wuhuacong/archive/2009/07/09/1520082.html 本篇介绍Winform程序开发中的布局界面的设计,介绍如何在我的共享软件中使用布局控件"WeifenLuo.WinFormsUI.Docking". 布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的.先看看控件使用

Winform- 界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用

布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的. 实现步骤 1)引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll.     2)主窗体改名为FormMainWnd,并将属性IsMdiContainer:True.     3)工具箱—>右键—>选择项—>.net组件—>浏览—

开源布局控件 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属性设置为

C# WinForm 技巧八:界面开发之“WeifenLuo.WinFormsUI.Docking+OutLookBar” 使用

概述 转自 http://www.cnblogs.com/luomingui/archive/2013/09/19/3329763.html 最近几天一直在关注WinFrom方面的文章 有想着提炼一下项目的公共部分,公共部分有分为 界面,类库两方面,今天主要是把界面也先提炼提炼. WeifenLuo.WinFormsUI.Docking + OutLookBar结合使用的效果图 WeifenLuo.WinFormsUI.Docking修改记录 从http://sourceforge.net/pr

WeifenLuo.WinFormsUI.Docking"的使用 z

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

WeifenLuo.WinFormsUI.Docking"的使用

要用 WeifenLuo.WinFormsUI.Docking 首先要下载: WeifenLuo.WinFormsUI.Docking 在当前工程“解决方案 - 引用”中 >> 右击引用 >> 浏览 >> 找到你存放的 WeifenLuo.WinFormsUI.Docking添加. 1.首先,我们添加一个主界面窗体,命名为MainForm,该窗体IsMdiContainer设置为True,也就是设置为多文档窗体格式.拖拉布局控件"WeifenLuo.WinFo

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

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

控件dockpanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 一是DockContent, DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行浮动和dock的场所, DockContent是从form类中继承出来的, 用于提供可浮动的窗口基类. 就是说: DockContent对象可以在DockPanel对象中任意贴边, 浮动, TAB化等. 引用->添加引用->浏览->weiFenLuo.winFormsUI.Docking.d