2015-04-02 79 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事件处理程序不是这种调用的最佳位置。