簡體   English   中英

重新啟動已處理的表單

[英]Restart a form that is disposed

父表單會啟動一個子表單,該子表單會通過CEFSharp嵌入Chromium嵌入式框架。 用戶可以關閉子窗體。 用戶可以重新啟動子窗體。 發生這種情況時,應用程序終止。

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

表單運行一次后,關閉並重新啟動該行

debugForm = new CEFdebugger();

使應用程序終止。 在輸出窗口中,我有

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

根據該線程,這表明我應該啟用調試非托管代碼,但這似乎沒有幫助。 在CEFdebugger的FormClosing事件中,我添加了

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

那沒有幫助。 該應用程序剛剛終止。

問題是由以下語句引起的

Cef.Shutdown();

在CEFdebugger_FormClosing中。 通過注釋掉它並在表單構造函數中測試Cef.IsInitialized,問題得以解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM