2015-04-02 80 views
0

在我的COM加載項下的子不會引起任何問題:End Sub關閉窗口後導致Excel崩潰,爲什麼?

Private Sub MonthCalendar1_DateChanged(sender As Object, e As Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged 
     Dim ExcelApp As Excel.Application = CType(AddinExpress.MSO.ADXAddinModule.CurrentInstance, AddinModule).ExcelApp 
     ExcelApp.ActiveCell.Value = MonthCalendar1.SelectionStart.Date 
    End Sub 

但是下面的子,在那裏我已經添加了一個Me.Close()語句,導致Excel崩潰。原因可能是什麼?

Private Sub MonthCalendar1_DateChanged(sender As Object, e As Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged 
     Dim ExcelApp As Excel.Application = CType(AddinExpress.MSO.ADXAddinModule.CurrentInstance, AddinModule).ExcelApp 
     ExcelApp.ActiveCell.Value = MonthCalendar1.SelectionStart.Date 
     Me.Close() 
    End Sub 

編輯:也許我的代碼觸發了一些其他事件在我的代碼執行,並導致Excel崩潰?是否有可能在任何事件開始時暫停執行?由於我不知道哪個事件可能會被調用,所以我不知道在哪裏添加斷點。

+0

我會嘗試在關閉表單之前關閉Excel.Application。 – 2015-04-02 09:56:54

+0

您可以逐行調試代碼,並檢查Me.Close() – 2015-04-02 10:07:41

+0

之後執行的位置。我不想關閉Excel應用程序。 Excel應用程序應該保持打開狀態。 – user1283776 2015-04-02 10:07:43

回答

1

改爲使用Hide方法。看來DateChanged事件處理程序不是這種調用的最佳位置。