Browse Source

Fix SD-1793 - ObjectDisposedException in System.Windows.Forms.Integration.WinFormsAdapter

pull/14/head
Matt Ward 15 years ago
parent
commit
3c808b1b04
  1. 9
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
  2. 3
      src/Main/Base/Project/Src/Util/SDWindowsFormsHost.cs

9
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs

@ -494,8 +494,13 @@ namespace ICSharpCode.FormsDesigner @@ -494,8 +494,13 @@ namespace ICSharpCode.FormsDesigner
host.Dispose();
return;
}
if (host != null && host.Child == value)
return;
if (host != null) {
if (host.IsDisposed) {
host = null;
} else if (host.Child == value) {
return;
}
}
if (host == null) {
host = new SDWindowsFormsHost(true);
host.ServiceObject = this;

3
src/Main/Base/Project/Src/Util/SDWindowsFormsHost.cs

@ -207,12 +207,15 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -207,12 +207,15 @@ namespace ICSharpCode.SharpDevelop.Gui
/// </remarks>
public bool DisposeChild { get; set; }
public bool IsDisposed { get; private set; }
protected override void Dispose(bool disposing)
{
if (disposing && !this.DisposeChild && Child != null) {
// prevent child from being disposed
Child = null;
}
IsDisposed = disposing;
base.Dispose(disposing);
}
}

Loading…
Cancel
Save