使用AddIn Express加载工作表以显示/隐藏功能区时如何捕获?

时间:2019-02-08 17:19:40

标签: c# excel addin-express

我已经使用Add-In Express for .NET创建了一个excel插件,但似乎无法弄清楚如何仅在“ 有效”上存在一组数据时才显示功能区”工作表。

如果工作表在某些单元格行中包含某些数据集,我想隐藏功能区,因为功能区上的按钮并不适用于所有工作表。当用户在不同的工作表之间切换时,我想适当地隐藏/显示功能区。

我尝试使用AddinInitialize事件,但这只会触发一次。我不想强迫用户直接打开Excel文件。他们应该能够打开Excel,然后从文件菜单中选择文件。

这是我到目前为止的内容,但我不知道将其放在何处:

private void OnAddinInitialize(object sender, EventArgs e)
{
    // note: this does not work all the time!
    adxRibbonTab1.Visible = IsRibbonVisible();
}

private bool IsRibbonVisible()
{
    var worksheet = ActiveSheet;
    if (worksheet == null)
        return false;

    // only show ribbon when top row has certain column headings
    var reader = new WorksheetReader(worksheet);
    return reader.HasColumns(TopLeftCell, RequiredColumnNames);
}

我已经尝试创建一个ADXExcelWorksheetEvents实例并覆盖某些事件,但是到目前为止我还不太幸运。对于这种类型的工作流程,我也无法在他们的网站上找到任何内容。

我将不胜感激!

1 个答案:

答案 0 :(得分:0)

我找到了答案。在AddinModule设计器上,有一个“事件”项必须引用,然后我就可以使用IsRibbonVisible()函数捕获以下内容:

  • WorksheetActivated
  • WorksheetDeactivated
  • WorkbookActivated

问题解决了!