private void barDocuments_DockTabClosing(object sender, DevComponents.DotNetBar.DockTabClosingEventArgs e) { if (!XContext.AllowClose) { if (e.DockContainerItem.Tag.GetType() == typeof(StartWF)) { e.Cancel = true; } return; } e.RemoveDockTab = true; if (((Bar)sender).Items.Count == 1) // Remove bar if last item is closed... { dotNetBarManager1.Bars.Remove((Bar)sender); } //删除事件订阅。 if (this.m_AddIns.Contains(e.DockContainerItem.Tag)) { MessageExchange.Singleton.Unsubscribe(e.DockContainerItem.Tag); MessageExchange.RemoveNotify(e.DockContainerItem.Tag); this.m_AddIns.Remove(e.DockContainerItem.Tag); } }
void LoadModule(System.Windows.Controls.Control addIn) { FormContainer doc = this.FindAddInContainer(addIn); if (doc == null) { doc = CreateAddInContainer(addIn); doc.Tag = addIn; //注册模块。 this.m_AddIns.Add(doc.ExplorerControl); //删除事件。 doc.FormClosed += (s, e) => { if (this.m_AddIns.Contains(doc.ExplorerControl)) { MessageExchange.Singleton.Unsubscribe(doc.ExplorerControl); MessageExchange.RemoveNotify(doc.ExplorerControl); this.m_AddIns.Remove(doc.ExplorerControl); } }; } else { AddInActivate(addIn); } }