当应用程序收到来自服务的调用时,它会为每个调用打开一个表单。用户必须在每个窗口中输入并关闭它。为了使用户的工作顺利进行,我试图在显示下一个窗口时重新激活用户正在处理的窗口。
执行此操作的方法如下:
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)
有谁知道为什么会发生这种情况?