private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
this.NewSheet += new Microsoft.Office.Interop.Excel.WorkbookEvents_NewSheetEventHandler(ThisWorkbook_NewSheet);
}
void ThisWorkbook_NewSheet(object Sh)
{
MessageBox.Show(((Excel.Worksheet)Sh).Name);
}
VB.NET的代码如下
Public Class ThisWorkbook
Private Sub ThisWorkbook_NewSheet(ByVal Sh As Object) Handles Me.NewSheet
MessageBox.Show(Sh.name)
End Sub
Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
End Sub
Private Sub ThisWorkbook_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown
End Sub
End Class
同样是object类型的Sh,VB.NET里可以直接调用name属性,而在C#中需要把Sh强制转化为Excel.Worksheet后才能调用Sh的worksheet的属性。
从VBA转到学习C#需要改变的观念真多,希望这点经验对和我一样的VSTO+C#的初学者有点用。