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;
}
}
}
}

浙公網安備 33010602011771號