Текстовые документы

Оценить
(0 голоса)

Как мы уже упоминали, документы могут иметь как текстовое, так и нетекстовое содержи­мое. Для документов с текстовым содержимым существует отдельный объект — TextDocument. Объект Text Document предоставляет доступ к функциям управления, спе­цифичным для текстового содержимого. Описание: image278

Если у вас есть объект Document, и если этот объект Document относится к текстовым до­кументам, тогда в свойстве Document. Object можно сослаться на экземпляр TextDocument следующим образом:

Dim doc As TextDocument doc = myDocument.Object

В табл. 11.12 содержатся члены TextDocument.

Совет

Текстовый документ представляется как экземпляром Document, так и экземпляром TextDocument. Нетекстовые документы (такие как форма Windows, открытая в окне визуального конструктора Windows Forms) имеют представление в виде Document, но не имеют соответствующего представления в виде TextDocument. К несчастью, нет хорошего способа определить во время выполнения, является ли документ тексто­вым. Есть один подход, который состоит в том, чтобы попытаться сделать приведение типа или присваивание объекту TextDocument и перехватить исключения, которые могут возникнуть при этом присваивании.

Для манипуляции закладками в документе полезны два метода TextDocument: метод ClearBookmarks удаляет из документа все неименованные закладки, а метод MarkText выполняет поиск по строковому шаблону и устанавливает закладки на соответствующие строки документа. Простой макрос для установки закладок на циклы For в документе на языке Visual Basic приведен в листинге 11.10. Описание: image279

Imports EnvDTE Imports EnvDTE80

Imports Microsoft.VisualStudio.CommandBars Imports System.Diagnostics Imports System.Windows. Forms

Public Module MacroExamples

' Установить закладки на все лексемы 'For' в текущем документе Public Sub BookmarkFor()

Dim doc As Document

Dim txtDoc As TextDocument

1 Сослаться на текущий документ doc = DTE.ActiveDocument

' Получить экземпляр TextDocument из документа txtDoc = doc.Object

' Вызвать метод MarkText со строкой 'For'

Dim found As Boolean = _

txtDoc.MarkText("For", vsFindOptions.vsFindOptionsFromStart)

' MarkText возвращает булев флаг, указывающий, был ли найден ' шаблон поиска в текстовом документе If found Then

MessageBox.Show("All instances of 'For' have been bookmarked.")

Else

MessageBox.Show("No instances of 'For' were found.")

End If End Sub End Module

Объект TextDocument также предоставляет возможность читать и редактировать текст в документе.

Редактирование текстовых документов
Добавление текста
Редактирование текста
Перемещение точки редактирования
Объекты команд

Добавить комментарий


Защитный код
Обновить

© 2017 www.visualstudios.ru. Все права защищены.