diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs index a6f9e02f4a..d601be63e4 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerGenerator/AbstractDesignerGenerator.cs @@ -152,6 +152,10 @@ namespace ICSharpCode.FormsDesigner if (formClass == null || initializeComponent == null) { throw new InvalidOperationException("InitializeComponent method not found in framework-generated CodeDom."); } + if (this.formClass == null) { + MessageService.ShowMessage("Cannot save form: InitializeComponent method does not exist anymore. You should not modify the Designer.cs file while editing a form."); + return; + } if (formClass.Name != this.formClass.Name) { LoggingService.Info("Renaming form to " + formClass.Name); diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs index 715e5c1771..fc267c122a 100644 --- a/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs +++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerLoader/NRefactoryDesignerLoader.cs @@ -329,7 +329,11 @@ namespace ICSharpCode.FormsDesigner this.CodeDomProvider.GenerateCodeFromCompileUnit(unit, Console.Out, null); } #endif - generator.MergeFormChanges(unit); + try { + generator.MergeFormChanges(unit); + } catch (Exception ex) { + MessageService.ShowError(ex); + } } // public void Reload() diff --git a/src/Main/Base/Project/Src/Commands/FileCommands.cs b/src/Main/Base/Project/Src/Commands/FileCommands.cs index 4e6f072de9..2d1aaa5773 100644 --- a/src/Main/Base/Project/Src/Commands/FileCommands.cs +++ b/src/Main/Base/Project/Src/Commands/FileCommands.cs @@ -30,7 +30,7 @@ namespace ICSharpCode.SharpDevelop.Commands "${res:Dialog.NewFile.AddToProjectQuestionTitle}", "${res:Dialog.NewFile.AddToProjectQuestionProject}", "${res:Dialog.NewFile.AddToProjectQuestionStandalone}") - == 1) + == 0) { new Project.Commands.AddNewItemsToProject().Run(); return;