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


Find - интерфейс

Обновлен: Ноябрь 2007

Поддерживает общие операции Find для текста в документах и файлах среды.

Пространство имен:  EnvDTE
Сборка:  EnvDTE (в EnvDTE.dll)

Синтаксис

'Декларация
<GuidAttribute("40D4B9B6-739B-4965-8D65-692AEC692266")> _
Public Interface Find
'Применение
Dim instance As Find
[GuidAttribute("40D4B9B6-739B-4965-8D65-692AEC692266")]
public interface Find
[GuidAttribute(L"40D4B9B6-739B-4965-8D65-692AEC692266")]
public interface class Find
public interface 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

См. также

Ссылки

Find - члены

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