Find2 接口

更新:2007 年 11 月

支持文档和文件环境中的常规文本 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 对象反映它们执行的搜索类型。由于自动化代码与环境的 UI 线程同步运行,因此您无需考虑在调用 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 命名空间