Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }