Find2 - интерфейс
Обновлен: Ноябрь 2007
Поддерживает общие операции Find для текста в документах и файлах среды.
Пространство имен: EnvDTE80
Сборка: EnvDTE80 (в EnvDTE80.dll)
Синтаксис
'Декларация
<GuidAttribute("01568308-5B2A-4F30-8D0A-E10EE0F28F4A")> _
Public Interface Find2 _
Implements Find
'Применение
Dim instance As Find2
[GuidAttribute("01568308-5B2A-4F30-8D0A-E10EE0F28F4A")]
public interface Find2 : Find
[GuidAttribute(L"01568308-5B2A-4F30-8D0A-E10EE0F28F4A")]
public interface class Find2 : Find
public interface Find2 extends Find
Заметки
Объект Find позволяет выполнять поиск и замену текста в компонентах среды, поддерживающих подобные операции, например в редакторе кода.
Этот объект предназначен главным образом для использования при записи макросов. В механизме записи макросов редактора используется класс Find вместо TextSelection.FindPattern, что обеспечивает доступ к функциям глобального поиска. К тому же этот объект эффективнее объекта TextSelection в таких операциях, как поиск в файлах.
В среде Visual Studio поддерживается глобальное состояние поиска, которое используется всеми ее инструментами, предоставляющими возможности поиска. Например, все элементы Visual Studio совместно используют данные о шаблонах поиска, задействованных во время сеанса, а также индикатор требуемого направления просмотра (прямого или обратного) в очередной операции Find для открытых документов. Свойства объекта Find обеспечивают взаимодействие с глобальным состоянием поиска и отслеживание его изменений. Когда задаются свойства объекта Find, тем самым задается и глобальное состояние поиска. Если пользователь выполняет операцию Find с помощью среды, объект Find будет отражать вид выполненного поиска. Так как код автоматизации выполняется синхронно с потоком пользовательского интерфейса среды, это избавляет от необходимости задавать некоторые свойства и требовать от пользователя выполнения поиска перед вызовом Execute.
Метод Execute выполняет операцию Find на основе параметров объекта Find. Можно также передать аргументы в метод FindReplace, чтобы выполнить поиск, не затрагивая глобального состояния поиска. Важно, чтобы клиенты автоматизации имели возможность выполнить поиск, не влияя на глобальное состояние поиска и избегая конфликтов с моделью состояния среды конечного пользователя.
Примеры
Sub FindExample()
Dim objTextDoc As TextDocument
Dim objEditPt As EditPoint
Dim iCtr As Integer
Dim objFind As Find
' Create a new text file.
DTE.ItemOperations.NewFile("General\Text File")
' Get a handle to the new document and create an EditPoint.
objTextDoc = DTE.ActiveDocument.Object("TextDocument")
objEditPt = objTextDoc.StartPoint.CreateEditPoint
objFind = objTextDoc.DTE.Find
' Insert ten lines of text.
For iCtr = 1 To 10
objEditPt.Insert("This is a test." & Chr(13))
Next iCtr
' Set the find options.
objFind.Action = vsFindAction.vsFindActionReplaceAll
objFind.Backwards = False
objFind.FilesOfType = "*.txt"
objFind.FindWhat = "test"
objFind.KeepModifiedDocumentsOpen = True
objFind.MatchCase = False
objFind.MatchInHiddenText = False
objFind.MatchWholeWord = True
objFind.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
objFind.ReplaceWith = "NEW THING"
objFind.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
objFind.SearchPath = "c:\temp"
objFind.SearchSubfolders = False
objFind.Target = vsFindTarget.vsFindTargetCurrentDocument
' Perform the Find operation.
objFind.Execute()
End Sub