Доступ к RichTextContentControl Text из надстройки в MS Word с помощью C # - PullRequest
2 голосов
/ 17 июня 2010

Я создал AddIn для MS Word.Там есть новая вкладка и кнопка.Я добавил новый шаблон документа, в котором есть RichTextContentControl.

 WORD_APP = Globals.ThisAddIn.Application;
            object oMissing = System.Reflection.Missing.Value;
            object oTemplate = "E:\\Sandbox\\TemplateWithFields\\TemplateWithFields\\TemplateWithFields.dotx";
            oDoc = WORD_APP.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);            

Я хочу получить текст внутри RichTextContentControl.Как я могу получить доступ к тексту или содержимому RichTextContentControl в моем проекте AddIn?

1 Ответ

3 голосов
/ 08 февраля 2012

Доступ к тексту элемента управления контентом можно получить следующим образом:

string text = contentControl1.Range.Text;

Кроме того, существует несколько способов, с помощью которых вы можете перебирать элементы управления контентом и выбирать только элементы управления контентом определенного типа или элементы управления контентом, которыесоответствует определенному тегу или заголовку.

Это очень важно, поскольку вы можете обрабатывать только те элементы управления содержимым, которые соответствуют определенному типу или соглашению об именах, см. пример ниже:

        WORD_APP = Globals.ThisAddIn.Application;
        object oMissing = System.Reflection.Missing.Value;
        object oTemplate = "E:\\Sandbox\\TemplateWithFields\\TemplateWithFields\\TemplateWithFields.dotx";
        Word.Document document = WORD_APP.Documents.Add(ref oTemplate, ref oMissing, ref oMissing, ref oMissing);

        //Iterate through ALL content controls
        //Display text only if the content control is of type rich text
        foreach (Word.ContentControl contentControl in document.ContentControls)
        {
            if (contentControl.Type == Word.WdContentControlType.wdContentControlRichText)
            {
                System.Windows.Forms.MessageBox.Show(contentControl.Range.Text);
            }
        }

        //Only iterate through content controls where the tag is equal to "RT_Controls"
        foreach (Word.ContentControl contentControl in document.SelectContentControlsByTag("RT_Controls"))
        {
            if (contentControl.Type == Word.WdContentControlType.wdContentControlRichText)
            {
                System.Windows.Forms.MessageBox.Show("Selected by tag - " + contentControl.Range.Text);
            }
        }

        //Only iterate through content controls where the title is equal to "Title1"
        foreach (Word.ContentControl contentControl in document.SelectContentControlsByTitle("Title1"))
        {
            if (contentControl.Type == Word.WdContentControlType.wdContentControlRichText)
            {
                System.Windows.Forms.MessageBox.Show("Selected by title - " + contentControl.Range.Text);
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...