c# - 如何在 Excel 中的 ListObject 绑定(bind)中触发更新?

标签 c# excel vsto

我有一个 ListObject绑定(bind)到 DataSetHow to: Add ListObject Controls to Worksheets 中所述.我想在输入每一行时计算某些列值。

例子:

  • 使用为 A1:D2 定义的表和 A2 中的光标
  • 在 A2
  • 中键入一个值
  • 点击标签
  • 期望的行为:行在数据集中更新,我 can detect the change并更新其他列实际行为:直到光标进入另一行才更新行

  • 如何使表更新 DataSet当前单元格失去焦点?

    最佳答案

    您可以使用 SheetTableUpdate事件以捕获列表对象中的更改。

    public partial class ThisAddIn
    {
        public static Excel.Application e_application;
    
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            e_application = this.Application;
            e_application.SheetTableUpdate += new Excel.AppEvents_SheetTableUpdateEventHandler(e_Application_SheetTableUpdate_Event);
        }
    
        private void e_Application_SheetTableUpdate_Event(object sender, Excel.TableObject target)
        {
            //--sender object refers to active sheet and must be cast as Worksheet before use
            //Update your dataset here
        }
    
        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
            e_application.SheetTableUpdate -= new Excel.AppEvents_SheetTableUpdateEventHandler(e_Application_SheetTableUpdate_Event);
            e_application = null;
        }
    
        protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
        {
            return new Ribbon();
        }
    }
    

    您可以引用ActiveCell通过使用以下代码。
    (Excel.Range)Application.ActiveCell;
    

    关于c# - 如何在 Excel 中的 ListObject 绑定(bind)中触发更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45807992/

    相关文章:

    c# - 如何将变量传递给另一个线程

    excel - 将参数传递给 AppleScriptTask

    vba - 将非空白单元格(列中)的值除以空单元格并使用 vba 重复

    vsto - SectionProperties.AddSection 无法正常工作 - bug?

    c# - 生成带有格式的文档文本

    c# - 在 Select() 查询中使用的 Lambda 表达式

    c# - 点击 AutoResetEvent 的 WaitOne() 后清除多个集合

    R找到超过2个向量的匹配项

    c# - 从 C# 中的 Windows 窗体应用程序访问 office 项目类

    c# - 如何实现 ClickOnce 更新策略以仅更新版本之间更改的文件?