zoukankan      html  css  js  c++  java
  • 标签文档添加双击标题自动关闭事件

    布局控件"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; 

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

  • 相关阅读:
    云原生学习笔记(4)——Pod和容器设计模式
    云原生学习笔记(3)——Kubernetes基本概念
    云原生学习笔记(2)——容器基本概念
    云原生学习笔记(1)——云原生
    JAVA基础系列:JDK目录结构
    Mac 接手步骤
    JAVA基础系列:运行环境
    软件测试系列——Web界面检查点和测试原则
    软件测试系列——白盒测试
    软件测试系列——性能指标
  • 原文地址:https://www.cnblogs.com/endv/p/4199617.html
Copyright © 2011-2022 走看看