Share via


ProjectItems 接口

更新:2007 年 11 月

包含 ProjectItem 对象,每个对象都表示项目中的项。

命名空间:  EnvDTE
程序集:  EnvDTE(在 EnvDTE.dll 中)

语法

声明
<GuidAttribute("8E2F1269-185E-43C7-8899-950AD2769CCF")> _
Public Interface ProjectItems _
    Implements IEnumerable
用法
Dim instance As ProjectItems
[GuidAttribute("8E2F1269-185E-43C7-8899-950AD2769CCF")]
public interface ProjectItems : IEnumerable
[GuidAttribute(L"8E2F1269-185E-43C7-8899-950AD2769CCF")]
public interface class ProjectItems : IEnumerable
public interface ProjectItems extends IEnumerable

备注

此集合由级联 ProjectItems 集合的分层(嵌套)结构组成,其中的这些集合分别表示每个项目中的项。

使用 Solution.Item().ProjectItems 引用此集合。

说明:

在 Visual Studio .NET 2003 和 Visual Studio 2005 中,不再需要对 Visual C++ 的 Project.ProjectItems 集合进行特殊处理。即,尽管 Visual C++ ProjectItems 集合以前将所有 Visual C++ 项目文件存储在平面列表中,但现在与这些文件在其他编程语言中一样,将它们按层次结构进行存储。

因为此更改可能影响现有代码,所以,在索引 Project.ProjectItems 集合以确定文件是否位于项目中时,可以使用一个方法在特定于项目的新对象模型中模拟这一旧行为。主要差别在于,现在可通过对 Visual C++ 对象调用 .Object 返回到 DTE 对象模型。

Dim proj as VCProject = DTE.ActiveSolutionProjects(0).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object

示例

' Before running, create a new project or open an existing project.
Sub ListProj()
   Dim proj As Project = DTE.ActiveSolutionProjects(0)
   Dim win As Window = _
     DTE.Windows.Item(Constants.vsWindowKindCommandWindow)
   ListProjAux(proj.ProjectItems(), 0)
End Sub

Sub ListProjAux(ByVal projitems As ProjectItems, ByVal Level As Integer)
   Dim projitem As ProjectItem
   For Each projitem In projitems
      MsgBox("Project item: " & projitem.Name, Level)
      ' Recurse if the project item has sub-items...
      Dim projitems2 As ProjectItemsprojitems2 = projitem.ProjectItems
      Dim notsubcoll As Boolean = projitems2 Is Nothing
      If Not notsubcoll Then
         ListProjAux(projitems2, Level + 1)
      End If
   Next
End Sub

另请参见

参考

ProjectItems 成员

EnvDTE 命名空间

其他资源

控制项目和解决方案

如何:编译和运行自动化对象模型代码示例