C# 如何访问此addin.cs文件中的方法
我已经在C#中创建了一个Excel加载项项目。现在,解决方案包含一个文件ThisAddin.cs,该文件具有一个类ThisAddin。后来,我在同一个解决方案中添加了一个名为Form的项。在表单中,当我单击按钮时,对于该按钮单击事件,我希望调用ThisAddin.cs文件中的方法C# 如何访问此addin.cs文件中的方法,c#,excel,vsto,C#,Excel,Vsto,我已经在C#中创建了一个Excel加载项项目。现在,解决方案包含一个文件ThisAddin.cs,该文件具有一个类ThisAddin。后来,我在同一个解决方案中添加了一个名为Form的项。在表单中,当我单击按钮时,对于该按钮单击事件,我希望调用ThisAddin.cs文件中的方法 namespace ExcelAddIn { public partial class ThisAddIn { public void RefreshExcelData()
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();
}
我在这里遗漏了什么?您从错误的方向处理问题。单击该按钮时,您不想创建新的外接程序,您真正想要的是在Excel启动时访问VSTO为您创建的外接程序实例,该实例可通过
Globals.ThisAddIn
访问
将表单中的代码更改为以下内容:
private void btnUploadTestCases_Click(object sender, EventArgs e)
{
var addIn = Globals.ThisAddIn;
addIn.RefreshExcelData();
}
。。。而且它应该很有魅力
话虽如此,是否有充分的理由将此作为一种方法应用于此Addin?一般来说,当Excel启动/关闭时,应使用ThisAddIn连接和拆除外接程序,我建议尽可能少地在其中添加逻辑。使用以下代码:
Globals.ThisAddIn.Application.StatusBar=“Referesh clicked!!!”;Globals.ThisAddIn.RefreshExcelData()代码>
只需确保您的功能仍然是公共的 在ThisAddIn
类中是否有构造函数?没有。我后来添加了它,但它仍然不起作用。您需要显示更多代码。有什么我们没有看到的?ThisAddIn是为VSTO项目创建的自动生成文件。为了回应Mathias在回答中的评论,您应该避免向该文件添加功能。