アプリケーションがサービスから呼び出しを受信すると、呼び出しごとにフォームが開きます。ユーザーは、各ウィンドウで入力を行い、ウィンドウを閉じる必要があります。ユーザーの作業をスムーズにするために、次のウィンドウが表示されているときにユーザーが作業していたウィンドウを再度アクティブにしようとしています。
これを行う方法は次のとおりです。
private void ActivatePreviousActiveForm() {
if (_activeWhenOpen != null && _activeWhenOpen.InvokeRequired) {
if (!_activeWhenOpen.Disposing || !_activeWhenOpen.IsDisposed)
_activeWhenOpen.Invoke((MethodInvoker)ActivatePreviousActiveForm);
} else
if (_activeWhenOpen != null && !(_activeWhenOpen is FrmRuntimeError))
_activeWhenOpen.Activate();
}
行に到達すると、「破棄されたオブジェクトにアクセスできません」とスローされることがあります
if (!_activeWhenOpen.Disposing || !_activeWhenOpen.IsDisposed)
なぜこれが起こるのか誰かが知っていますか?