如何在单词添加中将两个组内容控件添加到活动文档中 - 这不是有效选择

时间:2015-02-11 16:26:08

标签: .net ms-word vsto office-interop openxml-sdk

我有一个Microsoft Office Word 2013 Add In,我用鼠标在活动文档上选择了一些文本。

然后,我在Add In上有一个按钮,当我点击它时,它应该在GroupContentControl_1中对该选择中的所有内容进行分组。然后,它应该在GroupContentControl_1之前插入另一个GroupContentControl_2。

光标将出现在GroupContentControl_2中,用户可以开始输入任何内容。

我尝试了很多东西,但却遇到了错误:

private void Button_Click(object sender, RoutedEventArgs e)
{
    //This line puts everything in current selection under a new group content control
    GroupContentControl gcc1 = doc.Controls.AddGroupContentControl("A");
    //Select the cursor position before the above group content control
    doc.Application.Selection.SetRange(gcc1.Range.Start - 1, gcc1.Range.Start - 1);
    //Insert new group content control-2 before the above one
    GroupContentControl gcc2 = doc.Controls.AddGroupContentControl("B");
}

在第三行代码中,我收到以下错误:

This is not a valid selection

1 个答案:

答案 0 :(得分:1)

我找到了问题的解决方案。您需要考虑以下几点才能使其有效:

  • 应该选择范围,即你应该制作范围的对象并调用Select();确保它被选中的方法。
  • 选定范围应该有效,即它不应包含任何表,范围文本不应为空。 在您的代码中,您使用空文本创建范围,您应该使用以下范围:

    doc.Application.Selection.SetRange(gcc1.Range.Start - 2, gcc1.Range.Start - 1);
    

指向测试:

  • 我还没有添加包含另一个控件的控件,它可能会引发相同的异常,如果你需要这样做,你可以测试它。