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

标签 c# excel vsto

我用 C# 创建了一个 Excel 插件项目。现在解决方案包含一个文件 ThisAddin.cs,它有一个类 ThisAddin。后来我在同一个解决方案中添加了一个名为 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();
}

我在这里错过了什么?

最佳答案

您从错误的方向处理问题。单击按钮时,您不想创建新的加载项,您真正想要的是访问 Excel 启动时 VSTO 为您创建的加载项实例,可通过 访问Globals.ThisAddIn

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

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

... 它应该很有魅力。

话虽这么说,这个方法在 ThisAddIn 上有充分的理由吗?一般来说,ThisAddIn 应该用于在 Excel 启动/关闭时连接和拆除加载项,我建议尽可能少地在其中放置逻辑。

关于c# - 如何访问 ThisAddin.cs 文件中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12021797/

相关文章:

c# - DragDrop 事件之后是否有事件发生?

excel-formula - 当一系列数字变为负数时确定单元格 ID 的 Excel 公式

vsto安装程序-静默模式问题

excel - VBA 如何强制用户使用 Excel 的内置范围选择来选择范围?

c# - 使用 VSTO 在 Word 中动态创建的表格后插入文本

c# - 在 C#/Asp.net 中编辑保存的 Microsoft Word 文档

c# - 签名 XML 疑难解答

c# - 我如何通过二维数组 'foreach'?

c# - 如何在页面之间传递参数

java - 尝试提取数据并写入另一个电子表格时结果为空