码迷,mamicode.com
首页 > 其他好文 > 详细

标签文档添加双击标题自动关闭事件

时间:2015-01-03 17:11:17      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大、美观、不亚于商业控件。而且控件使用也是比较简单的。本文介绍如何给 WeifenLuo.WinFormsUI.Docking 控件的标签文档添加双击标题自动关闭事件,方法很简单,只需稍稍修改 WeifenLuo.WinFormsUI.Docking 的代码即可。

在DockPaneStripBase的WndProc方法里,对于左键双击消息重新作了处理,我们先找到这段代码,位于 DockPaneStripBase.cs 类文件中,原始代码如下: 

 
  1. [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] 
  2. protected override void WndProc(ref Message m) 
  3. { 
  4.     if (m.Msg == (int)Win32.Msgs.WM_LBUTTONDBLCLK) 
  5.     { 
  6.         base.WndProc(ref m); 
  7.         int index = HitTest(); 
  8.         if (DockPane.DockPanel.AllowEndUserDocking && index != -1) 
  9.         { 
  10.             IDockContent content = Tabs[index].Content; 
  11.             if (content.DockHandler.CheckDockState(!content.DockHandler.IsFloat) != DockState.Unknown) 
  12.                 content.DockHandler.IsFloat = !content.DockHandler.IsFloat; 
  13.         } 
  14.         return; 
  15.     } 
  16.     base.WndProc(ref m); 
  17.     return; 
  18. } 

下面我们只要稍作修改即可,改后的代码:

 
  1. [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.UnmanagedCode)] 
  2. protected override void WndProc(ref Message m) 
  3. { 
  4.     if (m.Msg == (int)Win32.Msgs.WM_LBUTTONDBLCLK) 
  5.     { 
  6.         base.WndProc(ref m); 
  7.         int index = HitTest(); 
  8.         if (DockPane.DockPanel.AllowEndUserDocking && index != -1) 
  9.         { 
  10.             IDockContent content = Tabs[index].Content; 
  11.             if (content.DockHandler.CheckDockState(!content.DockHandler.IsFloat) != DockState.Unknown) 
  12.                 content.DockHandler.IsFloat = !content.DockHandler.IsFloat; 
  13.             //以下两行代码由宜城小子于2010-09-28添加 
  14.             //实现双击文档选项卡自动关闭 
  15.             else 
  16.                 content.DockHandler.Close(); 
  17.         } 
  18.         return; 
  19.     } 
  20.     base.WndProc(ref m); 
  21.     return; 
  22. } 

加下划线的那两行代码就是了,呵呵很简单吧!

标签文档添加双击标题自动关闭事件

标签:

原文地址:http://www.cnblogs.com/endv/p/4199617.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!