重新启动已处置的表单

时间:2015-12-16 01:15:19

标签: c# cefsharp

父表单启动一个子表单,通过CEFSharp嵌入Chromium Embedded Framework。用户可以关闭子表单。用户可以重新启动子表单。当发生这种情况时,应用程序终止。

if (debugForm == null || debugForm.IsDisposed)
{
  if (debugForm != null && debugForm.IsDisposed)
  {
     debugForm = null;
  }
  debugForm = new CEFdebugger();
  ....
}

当表单运行一次后,关闭并重新启动该行

debugForm = new CEFdebugger();

导致应用程序终止。在输出窗口中我有

... has exited with code 1073741855 (0x4000001f)

根据this thread,这表明我应该启用调试非托管代码,但这似乎没有帮助。 在CEFdebugger的FormClosing事件中,我添加了

private void CEFdebugger_FormClosing(object sender, FormClosingEventArgs e)
{
    Cef.Shutdown();
    this.Controls.Remove(browser);
    browser = null;
}

这没有帮助。应用程序刚终止。

1 个答案:

答案 0 :(得分:0)

问题是由声明

引起的
Cef.Shutdown();

在CEFdebugger_FormClosing中。通过注释并在表单构造函数中测试Cef.IsInitialized,问题得到了解决。