From 6a3115b80a2e1fb351993e0c53b88a4288862a4d Mon Sep 17 00:00:00 2001 From: BlueBlock Date: Tue, 14 Mar 2023 04:44:42 -0400 Subject: [PATCH] Update ProtocolBase.cs Do not attempt to dispose the control if the control is already closed, closing or disposed. --- mRemoteNG/Connection/Protocol/ProtocolBase.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mRemoteNG/Connection/Protocol/ProtocolBase.cs b/mRemoteNG/Connection/Protocol/ProtocolBase.cs index ae83169c..a257133c 100644 --- a/mRemoteNG/Connection/Protocol/ProtocolBase.cs +++ b/mRemoteNG/Connection/Protocol/ProtocolBase.cs @@ -5,6 +5,7 @@ using System.Threading; using System.Windows.Forms; using mRemoteNG.UI.Tabs; using System.Runtime.Versioning; +using mRemoteNG.UI.Forms; // ReSharper disable UnusedMember.Local @@ -88,8 +89,7 @@ namespace mRemoteNG.Connection.Protocol } catch (Exception ex) { - Runtime.MessageCollector.AddExceptionStackTrace("Couldn't focus Control (Connection.Protocol.Base)", - ex); + Runtime.MessageCollector.AddExceptionStackTrace("Couldn't focus Control (Connection.Protocol.Base)", ex); } } @@ -233,6 +233,12 @@ namespace mRemoteNG.Connection.Protocol private void DisposeControl() { + // do not attempt to dispose the control if the control is already closed, closing or disposed + if (Control == null || !Control.IsAccessible || Control.IsDisposed) + { + return; + } + if (Control.InvokeRequired) { var s = new DisposeControlCB(DisposeControl);