【问题标题】:VSTO Word - adding a table row on button click from task paneVSTO Word - 在任务窗格中单击按钮时添加表格行
【发布时间】:2015-12-01 19:53:12
【问题描述】:

我有一个 VSTO 项目,单击功能区上的按钮,使用特定模板打开一个新的 Word 文档,然后使用自定义任务窗格打开它。该窗格上有一个按钮,单击该按钮时,我想向文档模板中存在的表添加一行。

目前,当单击任务窗格上的按钮时,我只是在运行时收到“命令失败”异常。这里是全班。如您所见,我尝试了两种方法,都失败了:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using word = Microsoft.Office.Interop.Word;

namespace TestWordAddin2010
{
    public partial class NewDescDMtaskPane : UserControl
    {
        public NewDescDMtaskPane()
        {
            InitializeComponent();
        }

        private void addSpare_Click(object sender, EventArgs e)
        {
            Globals.ThisAddIn.Application.ActiveDocument.Tables[1].Rows.Add(Globals.ThisAddIn.Application.ActiveDocument.Tables[1].Rows[1]);  //this doesn't work

            //word.Table wordTable = Globals.ThisAddIn.Application.ActiveDocument.Tables[1];
            //wordTable.Rows.Add(wordTable.Rows[1]);  //neither does this work
        }
    }
}

任何帮助表示赞赏。

【问题讨论】:

  • 在什么情况下不起作用?你有错误吗?行是否添加到错误的位置?请提供更多信息。
  • 我在 Visual Studio 中收到“命令失败”异常。没有行被添加到任何表中。
  • 啊,我的错。我在最顶部有一个带有内容控件的隐藏表格。当我将其更改为“表格 [2]”时,它在我想要的表格中添加了一行。但是,我实际上也打算在该表中使用内容控件。这是否意味着我不能向带有内容控件的表中添加行??显然我可以试验,但你可能知道答案?
  • 能否提供准确的复制步骤?哪个版本的 Word?如果我知道确切的情况,我明天可以看看它...... FWIW 内容控件不应该阻止添加一行。

标签: c# ms-word vsto word-addins


【解决方案1】:

您的第一个表格很可能包含合并的单元格。然后您将无法访问 Rows 集合中的各个行。

作为一种解决方法,您可以使用Selection 对象,如下所示:

ActiveDocument.Tables(1).Range.Select();
Application.Selection.Collapse();
Application.Selection.InsertRowsAbove();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多