我創建了一個具有幾個按鈕和一個文本框的自定義窗體。C#自定義窗體退出時拋出COMException
此自定義窗體是通過我在Microsoft Outlook外接程序上創建的單擊事件按鈕打開的,我正在將其附加到「功能區」上。 (不知道這是否重要,這裏沒有問題)。
在窗體窗體上,第一個按鈕只是將文本文件的內容保存到磁盤。
另一個按鈕嘗試關閉表單。在這個按鈕單擊事件中,我嘗試了以下兩行,單獨並在一起
this.Close();和this.Dispose();
當我使用這個按鈕或表格出口(位於一個視窗形式的右上的「x」)我收到以下錯誤,
收到COMException是通過從HRESULT用戶 異常未處理:0x800A01A8
當拋出這個錯誤,它帶我到「Connect.cs」下面的方法文件,
public void OnBeginShutdown(ref System.Array custom)
{
this.toolbarButton.Delete(System.Reflection.Missing.Value);
this.toolbarButton = null;
}
我不知道如何開始解決此。我做了大量的研究,但不幸的是沒有發現太多。我確信這個問題可能是因爲我創建了一個沒有經驗的自定義表單,並且有一些我沒有做過或沒有意識到的「內務」或「最佳實踐」。
任何人都有這方面的見解?
這段代碼會在運行*兩次*時彈出。不完全不可能,因爲Form.Close()通常已經包含一個dispose。添加'if(this.toolbarButton!= null)'是安全的。 –