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号