1. 程式人生 > 實用技巧 >Devexpress DockManager多頁面浮動視窗會關閉所有頁面的問題

Devexpress DockManager多頁面浮動視窗會關閉所有頁面的問題

註冊 DockManager的 ClosingPanel事件

  

private void DockManager1_ClosingPanel(object sender, DockPanelCancelEventArgs e)
        {
            //判斷是否為浮動窗體
            if (e.Panel.FloatForm != null)
            {
                //獲取當前的rootpanel
                var activePanel = this.dockManager1.ActivePanel;
                if (activePanel != null)
                {
                    //獲取當前顯示的dockpanel
                    if (activePanel.ActiveChild != null)
                    {
                        //只關閉當前的panel(而不是關閉當前浮動窗體中的所有panel)
                        //且引發當前panel的close事件(如果不想引發,則使用activePanel.Visibility= DockVisibility.Hidden)
                        //引發的好處在於如果當前panel在關閉時會觸發其它狀態,則此時有效
                        activePanel.ActiveChild.Close();
                        //告知已處理過關閉事件
                        e.Cancel = true;
                    }
                    else
                    {
                        //使用系統的關閉事件
                        e.Cancel = false;
                    }
                }
            }

        }