Devexpress DockManager多頁面浮動視窗會關閉所有頁面的問題
阿新 • • 發佈:2021-01-08
註冊 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; } } } }