zoukankan      html  css  js  c++  java
  • DockPanel的一个异常BUG【DockPanel Suite2.4 存在BUG】


    以下讨论是针对 DockPanel Suite 开源组件的DockPanel类
     

    补充:从发现下文描述的异常之后,在使用时发现,当一个DockContent窗体添加到DockPanel中,先打开,再关闭 然后改变主窗体大小时,会使其他未关闭的DockContent窗口消失,不暴任何异常,

    非常诡异的一个错误,出现在DockPanel SUite 2.4中, 改用2.3后没有发现本文描述的任何问题!

    异常产生场景描述如下:

    DockPanel中添加一个 DockContent窗体,窗体的HideOnClose属性设置为true

    当反复点击DockContent窗体的关闭按钮时触发异常;

    异常代码位于DockPanel代码第498行

    NestedDockingStatus.NestedPanes.Remove(this);

     多次点击DockContent关闭按钮时,此处NestedPanes会产生为NULL的异常

     修改方法为添加一个判断,如下完整函数:

    internal void CloseContent(IDockContent content)
            {
                DockPanel dockPanel = DockPanel;
                dockPanel.SuspendLayout(true);

                
    if (content == null)
                    
    return;

                
    if (!content.DockHandler.CloseButton)
                    
    return;

                
    if (content.DockHandler.HideOnClose)
                {
                    content.DockHandler.Hide();
                    
    if (NestedDockingStatus.NestedPanes!=null)                //修改位置
                       NestedDockingStatus.NestedPanes.Remove(this);
                }
                
    else
                    content.DockHandler.Close();

                dockPanel.ResumeLayout(truetrue);
            }
  • 相关阅读:
    在网页中实现截屏粘贴的功能
    CSS3 @font-face 做自定义图标
    Visual Studio报错一箩筐(持续更新)
    Axure实现vcg官网首页原型图
    Axure实现bootstrap首页线框图
    Web第一天——准备篇
    vue动态加载组件
    组件封装之将代码放到npm上
    node连接mysql生成接口,vue通过接口实现数据的增删改查(二)
    autoCAD2007 快捷键 标注
  • 原文地址:https://www.cnblogs.com/cxwx/p/1873377.html
Copyright © 2011-2022 走看看