我正在開發一個AutoCAD .Net插件,其中包含一個打開模式窗口的命令。該窗口應顯示一個網頁。AutoCAD崩潰試圖從.Net命令打開模態對話框
但它有一個奇怪的錯誤,這裏是一個簡單的代碼來重現:
[CommandMethod("TEST_BROWSER")]
public void TestBrowserCommand()
{
var window = new Window();
var browser = new WebBrowser();
window.Content = browser;
browser.Source = new Uri("http://google.com");
window.ShowDialog();
}
或者更簡單:
[CommandMethod("TEST_BROWSER")]
public void TestBrowserCommand()
{
Application.ShowModalWindow(new Uri("http://google.com"));
}
下面是步驟的順序之後的AutoCAD崩潰:
- 從命令行(TEST_BROWSER)調用該命令。
- 關閉出現的窗口。
- 調用相同的命令再次
- 出現錯誤消息:http://i.stack.imgur.com/sFWMX.png
它工作正常,如果打開非模態(無模式)的窗口,或者不使用Web瀏覽器或調用代碼而不使用該命令。
但我需要一個模態窗口與命令行調用瀏覽器。
還有其他人遇到同樣的問題嗎?
如果問題僅在第二次調用時發生,建議您在完成後嘗試清理有關該瀏覽器窗口的所有內容。嘗試在命令結尾正確處理它。 –
@Daniel我試圖調用Window.Close事件上的WebBrowser.Dispose方法,但它沒有幫助。也許有些未清理的數據確實如此,但我不知道如何正確清理所有內容。 – reinwolf
您可以嘗試的另一件事是將標誌添加到'CommandMethod'屬性。有很多標誌,例如'session'(命令在autocad主窗口中運行獨立的打開文檔)。也可能有一個'模態'標誌。我無法分辨每個國旗是做什麼的,但也許其中一些可能有用。 –