From e3af292c9d80a55f84dcbab9fe5885e4fea430bc Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sat, 19 Nov 2005 15:43:48 +0000 Subject: [PATCH] Form designer disposes the design surface without using BeginInvoke if the FormDesignerViewContent is being disposed. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@773 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/FormDesigner/FormDesignerViewContent.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/FormDesignerViewContent.cs b/src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/FormDesignerViewContent.cs index 4704573394..6b8608bf55 100644 --- a/src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/FormDesignerViewContent.cs +++ b/src/AddIns/DisplayBindings/FormDesigner/Project/Src/FormDesigner/FormDesignerViewContent.cs @@ -55,6 +55,7 @@ namespace ICSharpCode.FormDesigner Panel p = new Panel(); DesignSurface designSurface; + bool disposing; IDesignerLoaderProvider loaderProvider; IDesignerGenerator generator; @@ -159,7 +160,11 @@ namespace ICSharpCode.FormDesigner // in the PropertyPad, "InvalidOperationException: The container cannot be disposed // at design time" is thrown. // This is solved by calling dispose after the double-click event has been processed. - p.BeginInvoke(new MethodInvoker(designSurface.Dispose)); + if (disposing) { + designSurface.Dispose(); + } else { + p.BeginInvoke(new MethodInvoker(designSurface.Dispose)); + } designSurface = null; } @@ -269,6 +274,7 @@ namespace ICSharpCode.FormDesigner public override void Dispose() { + disposing = true; if (IsFormDesignerVisible) { Deselected(); }