Поделиться через


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

См. также

Ссылки

Find2 - члены

EnvDTE80 - пространство имен