COM Word - >获取所有ContentControls

时间:2011-11-25 10:52:47

标签: c# .net ms-word office-interop

我想获得Word-Document的所有ContentControls。目前我使用以下功能来执行此操作。

    private static List<ContentControl> GetAllContentControls(Document wordDocument)
    {
        if (null == wordDocument)
            throw new ArgumentNullException("wordDocument");

        List<ContentControl> ccList = new List<ContentControl>();

        Range rangeStory;
        foreach (Range range in wordDocument.StoryRanges)
        {
            rangeStory = range;
            do
            {
                try
                {
                    foreach (ContentControl cc in rangeStory.ContentControls)
                    {
                        ccList.Add(cc);
                    }
                }
                catch (COMException) { }
                rangeStory = rangeStory.NextStoryRange;

            }
            while (rangeStory != null);
        }
        return ccList;
    }

问题是在文本字段中获取Contentcontrol。

1 个答案:

答案 0 :(得分:1)

我明白了

    private static List<ContentControl> GetAllContentControls(Document wordDocument)
    {
        if (null == wordDocument)
            throw new ArgumentNullException("wordDocument");

        List<ContentControl> ccList = new List<ContentControl>();

        Range rangeStory;
        foreach (Range range in wordDocument.StoryRanges)
        {
            rangeStory = range;
            do
            {
                try
                {
                    foreach (ContentControl cc in rangeStory.ContentControls)
                    {
                        ccList.Add(cc);
                    }

                    foreach (Shape shapeRange in rangeStory.ShapeRange)
                    {
                        foreach (ContentControl cc in shapeRange.TextFrame.TextRange.ContentControls)
                        {
                            ccList.Add(cc);
                        }
                    }
                }
                catch (COMException) { }
                rangeStory = rangeStory.NextStoryRange;

            }
            while (rangeStory != null);
        }
        return ccList;
    }