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

时间:2012-08-18 19:55:56

标签: c# excel vsto

我在C#中创建了一个Excel Addin项目。现在解决方案包含一个文件ThisAddin.cs,它有一个ThisAddin类。后来我在同一个解决方案中添加了一个名为Form的项目。在Form中,当我单击一个按钮时,对于该按钮单击事件,我想调用ThisAddin.cs文件中的方法。

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

现在在MyForm.cs中,在尝试为ThisAddin类创建一个对象时,有一个编译错误,即Thisaddin类没有一个带0参数的构造函数。

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

我在这里缺少什么?

2 个答案:

答案 0 :(得分:10)

您正在从错误的方向接近问题。当您单击该按钮时,您不想创建新的加载项,您真正想要的是访问VSTO在Excel启动时为您创建的加载项实例,该实例可通过{ {1}}。

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

Globals.ThisAddIn

......它应该有魅力。

话虽如此,有一个很好的理由让这个方法出现在ThisAddIn上吗?通常,当Excel启动/关闭时,应使用ThisAddIn来连接和拆除加载项,我建议尽可能少地使用逻辑。

答案 1 :(得分:3)

使用此代码:

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

确保您的功能仍为public