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( true true );
        }

 

 

 

转载于:https://www.cnblogs.com/cxwx/archive/2010/11/10/1873377.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值