internal static void AddTab(DetailsTemplatesSurface designSurface) { if (designSurface != null) { IDesignerHost designerHost = designSurface.GetService(typeof(IDesignerHost)) as IDesignerHost; if (designerHost != null) { DesignerTransaction designerTransaction = null; try { designerTransaction = designerHost.CreateTransaction("TabControlAddTabPage" + designSurface.TemplateTab.Site.Name); Hashtable hashtable = new Hashtable(); hashtable["Parent"] = designSurface.TemplateTab; hashtable["TabPageIndex"] = designSurface.TemplateTab.SelectedIndex + 1; ToolboxItem toolboxItem = new ToolboxItem(typeof(CustomTabPage)); toolboxItem.CreateComponents(designerHost, hashtable); } finally { if (designerTransaction != null) { designerTransaction.Commit(); } } } } }
private static void RemoveTab(DetailsTemplatesSurface designSurface) { UIService uiservice = null; IDesignerHost designerHost = designSurface.GetService(typeof(IDesignerHost)) as IDesignerHost; if (designerHost != null) { uiservice = (designerHost.GetService(typeof(UIService)) as UIService); } if (uiservice != null) { if (designSurface.TemplateTab.Controls.Count <= 1) { uiservice.ShowMessage(Strings.CannotDeletePage); return; } TabPage selectedTab = designSurface.TemplateTab.SelectedTab; if (selectedTab != null) { DialogResult dialogResult = uiservice.ShowMessage(Strings.ConfirmDeleteTab(selectedTab.Text), UIService.DefaultCaption, MessageBoxButtons.OKCancel); if (dialogResult == DialogResult.OK) { DesignerTransaction designerTransaction = null; try { designerTransaction = designerHost.CreateTransaction("TabControlRemoveTabPage" + designSurface.TemplateTab.Site.Name); designerHost.DestroyComponent(selectedTab); } finally { if (designerTransaction != null) { designerTransaction.Commit(); } } designSurface.DataContext.IsDirty = true; } } } }