Dockpanel 实现浮动和多标签窗体解决方案(转)
2009-07-31 12:52 by sunney, 2801 阅读, 0 评论, 收藏, 编辑首先,下载Dockpanel suite,在sf上能下到最新的2.3.1版本的dll,和demo.
http://sourceforge.net/projects/dockpanelsuite/
下面介绍一下dockpanel suite的使用过程:
1,在主窗体中添加dockpanel控件,并把设置主窗体 IsMdiContainer=true。不然在向主窗体中添加标签窗体时,会报异常:Invalid parent form. When using DockingMdi or SystemMdi document style, the DockPanel control must be the child control of the main MDI container form.
并把设置dockpanel 的documentstyle :dockPanel.DocumentStyle = DocumentStyle.DockingMdi.(注:documentstyle 有四种,要实现浮动和多标签效果可以使用:DockingMdi 或DockingSdi,在下面的demo中可以测试,没有看出二者的区别,还望高手指教)
2,加载Dockpanel 的配置文件。Dockpanel suite 是基于配置文件的,其配置文件Dockpanel.config可以放置到指定的位置。在主窗体的load 事件中要做加载配置文件的工作。需要执行配置文件的路径,并使用dockpanel 的LoadFromXml方法加载需要显示的浮动窗体,在initDockpanel 中自定义装载的哪些浮动窗体。
1 | private void frmMain_Load(object sender, EventArgs e) |
2 | { |
3 | this.dockPanel.DocumentStyle = DocumentStyle.DockingMdi; |
4 | this.m_DockPath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config"); |
5 | this.InitDockPanel(); |
6 | } |
7 | |
8 | /// <summary> |
9 | /// 按照配置文件初始化Dockpanel |
10 | /// </summary> |
11 | private void InitDockPanel() |
12 | { |
13 | try |
14 | { |
15 | //根据配置文件动态加载浮动窗体 |
16 | this.dockPanel.LoadFromXml(this.m_DockPath, delegate(string persistString) |
17 |