无法访问 C# Excel 加载项事件的对象成员



我无法访问我创建的任何事件的对象成员! - 我错过了重要的东西吗?

当前示例:

我正在开发Excel Office加载项。我有一个可以管理文件的优秀类,但是我试图将事件方法放在功能区类中,以便可以更改功能区控件。

简而言之,该程序需要:

  • 将我的自定义功能区的标签控制文本设置为活动表的名称。

我使用以下技术为我的C#Excel Office加载程序创建了一个激活事件:

private event Excel.WorkbookEvents_SheetActivateEventHandler SheetActivateEvent;
...
public void Ribbon_Load(Office.IRibbonUI ribbonUI)
{
    this.ribbon = ribbonUI;
    ExcelFile TheFile = new ExcelFile();
    SheetActivateEvent = new Excel.WorkbookEvents_SheetActivateEventHandler(SheetActivate);
    TheFile.XLBook.SheetActivate += SheetActivateEvent;
}
...

private void SheetActivate(System.Object Sheet)
{
    //WorkSheetLabel = Sheet.Name; 
    this.ribbon.Invalidate(); 
}
...
public String GetSheetLabel(Office.IRibbonControl Control)
{
    return WorkSheetLabel;
}

事件有效 - 如果我在功能区无效线上放置一个断点,我可以清楚地看到每次更改活动表时都会触发事件。

但是,我似乎无法访问对象的成员。如果我取消纸张。

我的其他事件也会发生此问题。

我应该如何获得名称?还是对床单做任何事情?

希望我在这里很慢...

最好的问候

正如您看到的表是Object。在使用之前,您必须将其施放为真正的对象。在这种情况下,我很想念它是Worksheet SO:

private void SheetActivateEvent(System.Object Sheet)
{
    Worksheet castedSheet = Sheet as Worksheet;
    WorkSheetLabel = castedSheet.Name; //Should work now.
    this.ribbon.Invalidate(); 
}

更新

尝试以下操作:

 public void Ribbon_Load(Office.IRibbonUI ribbonUI)
{
    this.ribbon = ribbonUI;
    ExcelFile TheFile = new ExcelFile();
   // SheetActivateEvent = new Excel.WorkbookEvents_SheetActivateEventHandler(SheetActivate);
    TheFile.XLBook.SheetActivate += SheetActivate;
}

相关内容

  • 没有找到相关文章

最新更新