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


    布局控件"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.     if (m.Msg == (int)Win32.Msgs.WM_LBUTTONDBLCLK) 
    4.     { 
    5.         base.WndProc(ref m); 
    6.         int index = HitTest(); 
    7.         if (DockPane.DockPanel.AllowEndUserDocking && index != -1) 
    8.         { 
    9.             IDockContent content = Tabs[index].Content; 
    10.             if (content.DockHandler.CheckDockState(!content.DockHandler.IsFloat) != DockState.Unknown) 
    11.                 content.DockHandler.IsFloat = !content.DockHandler.IsFloat; 
    12.         } 
    13.         return; 
    14.     } 
    15.     base.WndProc(ref m); 
    16.     return; 

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

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

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

  • 相关阅读:
    如何阅读一篇论文
    FT232R驱动问题
    无线传感网-定位技术1
    无线传感网中常见路由协议2
    课程总结
    十四周总结以及实验报告
    第十三周总结
    第十二周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
  • 原文地址:https://www.cnblogs.com/endv/p/4199617.html
Copyright © 2020-2023  润新知