现在的位置: 首页 > 综合 > 正文

DockPanel的使用

2012年08月15日 ⁄ 综合 ⁄ 共 1309字 ⁄ 字号 评论关闭

DockPanel有人曰浮动窗体,也就是c#编辑器的样式,如下图:

浮动窗体可以浮动、停靠(上下左右)、分页(如上图的档案录入页面)。

 以下记录以下使用方法:

(1)首先找到WeifenLuo.WinFormsUI.Docking.dll,下载WeifenLuo.WinFormsUI.Docking.dll组建(点击下载)

(2)把该组建添加到引用,创建窗体1为主窗体,窗体2、窗体3为子窗体。把dockpanle工具添加上。

(3)主窗体代码:把dockpanle拖放到主窗体,添加代码 dockPanel1.DocumentStyle = DocumentStyle.DockingMdi;

(4)子窗体:子窗体继承自: WeifenLuo.WinFormsUI.Docking.DockContent , 不是继承自form;定义子窗体对象

form1 f1=new form1();

 f1.ShowHint = DockState.Document;
f1.Show(dockPanel1);

显示效果即得到。

     另外也记录下状态,下次打开时候任然保持,用以下方法加载记录状态:

(1)private DeserializeDockContent ddc;

(2)private IDockContent GetContentFromPersistString(string persistString)
        {
          if (persistString == typeof(f1).ToString())
                return f1;
            if (persistString == typeof(f2).ToString())
                return f2;
               else
           {
               return null;
            }
        }

(3)

string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config");
if (File.Exists(configFile))
            dockPanel1.LoadFromXml(configFile, ddc);
            ddc = new DeserializeDockContent(GetContentFromPersistString);

以上方法加载保存的状态,

string configFile = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "DockPanel.config");
            dockPanel1.SaveAsXml(configFile);

 另外,要实现各个dockpanle子窗体之间的互动,例如,vs编辑器中,设计界面的时候,选择一个文本框,属性框中的属性随之改变,使用委托可以解决,可以参看本博客的委托应用1.

抱歉!评论已关闭.