WeifenLuo.WinFormsUI.DockContent 使用

WeifenLuo.WinFormsUI.DockContent这个控件不错,   可以很方便地实现如vs   2003里那种窗口定位,   浮动,   dock,   tab化等界面效果,只是具体使用方法还是不太清楚,谁知道相关的使用细节指点一下!  
   
  ××××××××××××××××××××××××××××××××××××××××××××  
  dockpanel中提供了几个可用的类,   重要的有两个,   一是DockPanel,   一是DockContent,    
  DockPanel是从panel继承出来的,   用于提供可浮动的dock的子窗口进行浮动和dock的场所,    
  DockContent是从form类中继承出来的,   用于提供可浮动的窗口基类.   就是说:   DockContent对象可以在DockPanel对象中任意贴边,   浮动,   TAB化等.    
  建立一个docpanel风格的程序的过程是:    
  1.     建立一个winform程序,   引用WinFormsUI.dll;    
  2.     程序主窗口比如说是FrmMain;   把FrmMain.IsMdiContainer   设置为true;    
  3.     在FrmMain中放一个DockPanel,   比如说名称是Panel1,   把Panel1.Dock设为Fill,   或是者是你规划的地方.    
  4.     新建你的子文档窗口类,   就是新建一个windows   FORM,   在窗口设计器里面随便你添上什么愿意要的控件.   这将是你的程序里的子窗口,     我弄了两个:    
          一个叫FrmChild,   里面放了一个dock   fill的editbox,    
          另一个叫FrmProperty,   放了一个dock   fill的PropertyGrid,   名叫propertyGrid1,    
          设这两个是有用的.   后面说.    
  5.     打开FrmChild和FrmProperty的代码,   把class的继承类由Form改为DockContent;    
  如:    
  public   class   FrmChild   :   WeifenLuo.WinFormsUI.DockContent   //   注意这里改了!    
  {    
     
  }    
   
  6.     为FrmMain加上两个私有成员:        
      FrmChild   fc;    
      FrmProperty   fp;    
  这两个成员用来保存待会儿新建的两个窗口的指针.    
  7.   为FrmMain的Load写些代码,   如下:    
   
   
                          fc   =   new   FrmChild();    
                          fp   =   new   FrmProperty();    
                          fc.Show(this.dockPanel1);    
                          fp.Show(this.dockPanel1);    
                          fp.propertyGrid1.SelectedObject   =   fc;    
                          fp.propertyGrid1.PropertyValueChanged   +=new   PropertyValueChangedEventHandler(propertyGrid1_PropertyValueChanged);    
     
                          fc.MouseDown   +=new   MouseEventHandler(fc_MouseDown);    
                          fc.MouseUp   +=new   MouseEventHandler(fc_MouseUp);    
     
  就是建立两个窗口,   这两个窗口都是从DockContent中继承的,   都有贴边,   tab化,   自动hide的能力,   很有意思的.    
  注意DockContent有新的Show()方法,   可以指定要Show的DockPanel,   当然要写上你准备的那个dockPanel1;    
  两个都Show了,   然后为fp的propertyGrid1指定要显示的对象,   就是fc;    
  之后再注册事件处理程序,   这几句是为了可以实现属性变了窗口变,   窗口变了属性变的效果,   可以动态地看到这些对象的属性对于其外观和形为的影响,   对于只想建个多窗口程序的人来说,   Show完了就可了.    
  8.   由于上面注册的事件,   下面加几个事件处理程序:    
   
   
                  private   void   propertyGrid1_PropertyValueChanged(object   s,   PropertyValueChangedEventArgs   e)    
                  {    
                             
                          this.dockPanel1.Invalidate();    
                          this.fc.Invalidate();    
                          //this.fc.Refresh();    
     
                  }    
     
                  private   void   fc_MouseDown(object   sender,   MouseEventArgs   e)    
                  {    
                          this.fp.propertyGrid1.Refresh();    
                  }    
     
                  private   void   fc_MouseUp(object   sender,   MouseEventArgs   e)    
                  {    
                          this.fp.propertyGrid1.Refresh();    
                  }    
   
  运行吧,   看看效果?   你把这两个窗口放到边上,   这里哪里都试试,   挺有意思的.    
  你也可以借这个程序试试DockContent的各个属性的效果.    
  ×××××××××××××××××××××××××××××××××××××××××
下载地址:
http://sourceforge.net/projects/dockpanelsuite/

转载于:https://www.cnblogs.com/wd900/archive/2007/12/05/983863.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值