如何访问ThisAddin.cs文件中的方法

我已经在C#中创build了一个Excel Addin项目。 现在解决scheme包含一个ThisAddin.cs文件,它有一个ThisAddin类。 后来我添加了一个名为Form的项目到相同的解决scheme。 在窗体中,当我点击一个button,为该button单击事件我想调用ThisAddin.cs文件内的方法。

namespace ExcelAddIn { public partial class ThisAddIn { public void RefreshExcelData() { } } } 

现在在MyForm.cs中,当试图为ThisAddin类创build一个对象时,会出现一个编译错误,即Thisaddin类没有一个构造函数需要0个参数。

 private void btnUploadTestCases_Click(object sender, EventArgs e) { ThisAddIn objrefresh = new ThisAddin(); } 

我在这里错过了什么?

你正从错误的方向接近问题。 当你点击button,你不想创build一个新的加载项,你真正想要的是访问加载项实例,这是由VSTO在Excel启动时为你创build的,可以通过Globals.ThisAddIn

将表单中的代码更改为以下内容:

 private void btnUploadTestCases_Click(object sender, EventArgs e) { var addIn = Globals.ThisAddIn; addIn.RefreshExcelData(); } 

…它应该是一种魅力。

这就是说,这是一个很好的理由在ThisAddIn方法? 一般来说,当Excel启动/closures时,应该使用ThisAddIn来连接和拆卸加载项,我build议尽可能less的逻辑。

使用此代码:

Globals.ThisAddIn.Application.StatusBar = "Referesh clicked!!!."; Globals.ThisAddIn.RefreshExcelData();

只要确保你的function保持public