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