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); }
private void menuItemOpen_Click(object sender, EventArgs e) { if (this.DestroyDesigner() && (this.openFileDialog.ShowDialog(this) == DialogResult.OK)) { SampleDesignerLoader designerLoader = new SampleDesignerLoader(this.openFileDialog.FileName); this.CreateDesigner(designerLoader); } }
private void menuItemNew_Click(object sender, EventArgs e) { if (this.DestroyDesigner()) { SampleDesignerLoader designerLoader = new SampleDesignerLoader(); this.CreateDesigner(designerLoader); } }
private void ÖffnenToolStripMenuItem_Click(object sender, EventArgs e) { if (this.DestroyDesigner() && (this.OpenFileDialog1.ShowDialog(this) == DialogResult.OK)) { SampleDesignerLoader designerLoader = new SampleDesignerLoader(this.OpenFileDialog1.FileName); this.CreateDesigner(designerLoader); } }
//[System.STAThreadAttribute()] //public static void Main() //{ // System.Windows.Forms.Application.Run(new MainForm()); //} private void menuItemNew_Click(object sender, System.EventArgs e) { if (DestroyDesigner()) // make sure we're clear for a new designer { // A loader created with no parameters creates a blank document. SampleDesignerLoader designerLoader = new SampleDesignerLoader(); CreateDesigner(designerLoader); } }
public void CreateFromXML(string file_name) { if (DestroyDesigner()) // make sure we're clear for a new designer { SampleDesignerLoader designerLoader = new SampleDesignerLoader(file_name); CreateDesigner(designerLoader); designerLoader.dirty = false; } }
public void CreateNew() { if (DestroyDesigner()) // make sure we're clear for a new designer { // A loader created with no parameters creates a blank document. SampleDesignerLoader designerLoader = new SampleDesignerLoader(); CreateDesigner(designerLoader); } }
private void menuItemOpen_Click(object sender, System.EventArgs e) { if (DestroyDesigner()) // make sure we're clear for a new designer { if (openFileDialog.ShowDialog(this) == DialogResult.OK) { // Load up this file (XML is all we support for now). SampleDesignerLoader designerLoader = new SampleDesignerLoader(openFileDialog.FileName); CreateDesigner(designerLoader); } } }
private void Form1_Load(object sender, EventArgs e) { hostingServiceContainer = new ServiceContainer(); this.hostingServiceContainer = new ServiceContainer(); this.hostingServiceContainer.AddService(typeof(PropertyGrid), this.propertyGrid); this.hostingServiceContainer.AddService(typeof(ToolboxPane), this.ToolboxPane1); SampleDesignerLoader designerLoader = new SampleDesignerLoader("template.xdx"); CreateDesigner(designerLoader); designerLoader.dirty = false; designerLoader.unsaved = false; mcs = ((IServiceProvider)this.host).GetService(typeof(IMenuCommandService)) as IMenuCommandService; }
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); }