private bool DestroyDesigner() { if (this.loader != null) { if (this.loader.PromptDispose()) { this.tabControl.Visible = false; this.menuItemSave.Enabled = false; this.menuItemSaveAs.Enabled = false; this.menuItemEdit.Enabled = false; this.menuItemView.Enabled = false; this.menuItemLayout.Enabled = false; this.menuItemDebug.Enabled = false; this.panelMain.Controls.Clear(); Application.RemoveMessageFilter(this.filter); this.filter = null; this.propertyGrid.Site = null; this.host.Dispose(); this.loader = null; this.host = null; return(true); } return(false); } return(true); }
void CreateDesigner(SampleDesignerLoader loader) { this.host = new SampleDesignerHost.SampleDesignerHost(this.hostingServiceContainer); this.propertyGrid.Site = new SampleDesignerApplication.PropertyGridSite(this.host, this); this.propertyGrid.PropertyTabs.AddTabType(typeof(System.Windows.Forms.Design.EventsTab)); this.host.LoadDocument(loader); this.loader = loader; this.ToolboxPane1.Host = this.host; this.host.View.Dock = DockStyle.Fill; this.host.View.Visible = true; this.panelMain.Controls.Add(this.host.View); this.filter = new KeystrokeMessageFilter(this.host); Application.AddMessageFilter(this.filter); this.host.SelectionChanged += new EventHandler(host_SelectionChanged); }
private bool DestroyDesigner() { if (this.loader != null) { if (this.loader.PromptDispose()) { Application.RemoveMessageFilter(this.filter); this.filter = null; this.propertyGrid.Site = null; this.host.Dispose(); this.loader = null; this.host = null; return(true); } return(false); } return(true); }
/// This method is called whenever we create a new designer or /// load one from existing XML. private void CreateDesigner(SampleDesignerLoader loader) { // Our loader will handle loading the file (or creating a blank one). host = new SampleDesignerHost(hostingServiceContainer); // The limited events tab functionality we have requires a special kind of // property grid site. // propertyGrid.Site = new PropertyGridSite(host as IServiceProvider, this); propertyGrid.PropertyTabs.AddTabType(typeof(EventsTab)); host.LoadDocument(loader); this.loader = loader; // The toolbox needs access to the IToolboxService and the designers. toolbox.Host = host; // Initialize our document window. host.View.Dock = DockStyle.Fill; host.View.Visible = true; panelMain.Controls.Add(host.View); // These are normally unavailable if we've got no host created. // Otherwise we gets lots of null reference exceptions. // tabControl.Visible = true; menuItemSave.Enabled = true; menuItemSaveAs.Enabled = true; menuItemEdit.Enabled = true; menuItemView.Enabled = true; menuItemLayout.Enabled = true; menuItemDebug.Enabled = true; // This IMessageFilter is used to intercept and decipher keyboard presses // that might be instructions for our designer. We have to do it this way // since we can't have our designer raise KeyPress events. // filter = new KeystrokeMessageFilter(host); Application.AddMessageFilter(filter); }
private void CreateDesigner(SampleDesignerLoader loader) { this.host = new SampleDesignerHost(this.hostingServiceContainer); this.propertyGrid.Site = new SampleDesignerApplication.PropertyGridSite(this.host, this); this.propertyGrid.PropertyTabs.AddTabType(typeof(EventsTab)); this.host.LoadDocument(loader); this.loader = loader; this.toolbox.Host = this.host; this.host.View.Dock = DockStyle.Fill; this.host.View.Visible = true; this.panelMain.Controls.Add(this.host.View); this.tabControl.Visible = true; this.menuItemSave.Enabled = true; this.menuItemSaveAs.Enabled = true; this.menuItemEdit.Enabled = true; this.menuItemView.Enabled = true; this.menuItemLayout.Enabled = true; this.menuItemDebug.Enabled = true; this.filter = new KeystrokeMessageFilter(this.host); Application.AddMessageFilter(this.filter); this.host.SelectionChanged += new EventHandler(host_SelectionChanged); }
/// This is called to destroy our designer (when we load a new one for example). /// It returns true if our environment has been cleared, false if not (if someone /// cancels a dispose when prompted to save changes). private bool DestroyDesigner() { if (loader != null) { if (loader.PromptDispose()) { // Again, bad things happen if there's no host loaded and // certain buttons are pressed in our TabControl or MainMenu. // tabControl.Visible = false; menuItemSave.Enabled = false; menuItemSaveAs.Enabled = false; menuItemEdit.Enabled = false; menuItemView.Enabled = false; menuItemLayout.Enabled = false; menuItemDebug.Enabled = false; // Get rid of our document window. panelMain.Controls.Clear(); // No need to filter for designer-intended keyboard strokes now. Application.RemoveMessageFilter(filter); filter = null; // Get rid of that property grid site so it doesn't ask for // any more services from our soon-to-be-disposed host. // propertyGrid.Site = null; host.Dispose(); loader = null; host = null; return(true); } return(false); } return(true); }
private bool DestroyDesigner() { if (this.loader != null) { if (this.loader.PromptDispose()) { this.tabControl.Visible = false; this.menuItemSave.Enabled = false; this.menuItemSaveAs.Enabled = false; this.menuItemEdit.Enabled = false; this.menuItemView.Enabled = false; this.menuItemLayout.Enabled = false; this.menuItemDebug.Enabled = false; this.panelMain.Controls.Clear(); Application.RemoveMessageFilter(this.filter); this.filter = null; this.propertyGrid.Site = null; this.host.Dispose(); this.loader = null; this.host = null; return true; } return false; } return true; }
/// This is called to destroy our designer (when we load a new one for example). /// It returns true if our environment has been cleared, false if not (if someone /// cancels a dispose when prompted to save changes). private bool DestroyDesigner() { if (loader != null) { if (loader.PromptDispose()) { // Again, bad things happen if there's no host loaded and // certain buttons are pressed in our TabControl or MainMenu. // tabControl.Visible = false; menuItemSave.Enabled = false; menuItemSaveAs.Enabled = false; menuItemEdit.Enabled = false; menuItemView.Enabled = false; menuItemLayout.Enabled = false; menuItemDebug.Enabled = false; // Get rid of our document window. panelMain.Controls.Clear(); // No need to filter for designer-intended keyboard strokes now. Application.RemoveMessageFilter(filter); filter = null; // Get rid of that property grid site so it doesn't ask for // any more services from our soon-to-be-disposed host. // propertyGrid.Site = null; host.Dispose(); loader = null; host = null; return true; } return false; } return true; }
private bool DestroyDesigner() { if (this.loader != null) { if (this.loader.PromptDispose()) { Application.RemoveMessageFilter(this.filter); this.filter = null; this.propertyGrid.Site = null; this.host.Dispose(); this.loader = null; this.host = null; return true; } return false; } return true; }