【问题标题】:Inserting a ContentControl after another ContentControl在另一个 ContentControl 之后插入一个 ContentControl
【发布时间】:2018-12-22 03:38:20
【问题描述】:

在我们的 VSTO Word 2010 插件中,我们试图在给定的其他 ContentControl 之后插入 RichTextControl。我们已经尝试过:

    public ContentControl AddContentControl(WdContentControlType type, int position)
    {
        Paragraph paragraphBefore = null;
        if (position == 0)
        {
            if (WordDocument.Paragraphs.Count == 0)
            {
                WordDocument.Paragraphs.Add();
            }
            paragraphBefore = WordDocument.Paragraphs.First;
        }
        else
        {
            paragraphBefore = Controls.ElementAt(position - 1).Range.Paragraphs.Last;
        }

        object start = paragraphBefore.Range.End;
        object end = paragraphBefore.Range.End + 1;

        paragraphBefore.Range.InsertParagraphAfter();

        Range rangeToUse = WordDocument.Range(ref start, ref end);

        ContentControl newControl = _ContentControl = _WordDocument.ContentControls.Add(type, rangeToInsert);

        Controls.Insert(position, newControl);

        OnNewContentControl(newControl, position);

        return newControl.ContentControl;
    }

这很好用,除非我们要插入的控件之前的控件末尾有一个空段落。如果是这种情况,则将新的 ContentControl 插入到最后一个控件中。

我们怎样才能避免这种情况?

【问题讨论】:

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


    【解决方案1】:

    回答有点晚了,但这是我为处理此案所做的:

    我认为这基本上是您所做的,但我插入了一个段落,然后按段落单元移动。似乎对我有用。

    Globals.ThisDocument.Paragraphs.First.Range.Select();
    
    var cc = Globals.ThisDocument.Controls.AddRichTextContentControl(Guid.NewGuid().ToString());
    
    var newRange = cc.Range;
    object count = 1;
    newRange.Move(Unit: Word.WdUnits.wdParagraph, Count: ref count);
    
    Globals.ThisDocument.Paragraphs.Add();
    newRange.Move(Unit: Word.WdUnits.wdParagraph, Count: ref count);
    
    var cc2 = Globals.ThisDocument.Controls.AddRichTextContentControl(newRange, Guid.NewGuid().ToString());
    

    【讨论】:

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