Visual studio 2010 在VisualWebDeveloper2010Express解决方案资源管理器中是否有递归折叠文件夹的方法?

Visual studio 2010 在VisualWebDeveloper2010Express解决方案资源管理器中是否有递归折叠文件夹的方法?,visual-studio-2010,projects-and-solutions,visual-web-developer,visual-web-developer-2010,Visual Studio 2010,Projects And Solutions,Visual Web Developer,Visual Web Developer 2010,这是我经常想做的事情,因为我最终在解决方案资源管理器中看到数百个源文件,事情可能会变得相当混乱 我在VisualStudio中找到了几个可以实现这一点的扩展,但由于VisualSWebDeveloper2010Express不支持扩展,我正在寻找替代解决方案 感谢您的建议 编辑:如果问题标题不清楚,我希望递归折叠文件夹,而不仅仅是隐藏展开的子树,并使其在再次打开父文件夹时以相同的状态显示。如果双击文件夹,则该文件夹将折叠,而不是您单击的文件夹中的文件夹。我认为,您可能不需要,因为您无法看到您单击

这是我经常想做的事情,因为我最终在解决方案资源管理器中看到数百个源文件,事情可能会变得相当混乱

我在VisualStudio中找到了几个可以实现这一点的扩展,但由于VisualSWebDeveloper2010Express不支持扩展,我正在寻找替代解决方案

感谢您的建议


编辑:如果问题标题不清楚,我希望递归折叠文件夹,而不仅仅是隐藏展开的子树,并使其在再次打开父文件夹时以相同的状态显示。

如果双击文件夹,则该文件夹将折叠,而不是您单击的文件夹中的文件夹。我认为,您可能不需要,因为您无法看到您单击的文件夹中的文件夹,因为它们隐藏在折叠的文件夹中。

如果双击某个文件夹,则该文件夹会折叠,但不会看到您单击的文件夹中的文件夹。我认为,您可能不需要,因为您无法在单击的文件夹中看到这些文件夹,因为它们隐藏在折叠的文件夹中。

此宏有帮助吗

这个宏有帮助吗


好吧,五个月后,我想没有办法做到这一点。按回答做标记。

好的,五个月后,我假设没有办法做到这一点。标记为已回答。

我意识到这一点,但当我重新展开文件夹且所有子文件夹仍在展开时,这对我没有帮助。正如我在问题中所说的,我正在寻找一种递归的解决方案。我意识到这一点,但当我重新展开文件夹并且所有子文件夹仍在展开时,这对我没有帮助。正如我在问题中所说的,我正在寻找一种递归实现这一点的解决方案。
Imports EnvDTE
Imports System.Diagnostics

Public Module Personal

Sub CollapseAll()

'DESCRIPTION: Collapse all the nodes in the project tree

' Get the the Solution Explorer tree
Dim oSolutionExplorer As UIHierarchy
oSolutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()

' Check if there is any open solution
If (oSolutionExplorer.UIHierarchyItems.Count = 0) Then
Return
End If

' Get the top node (the name of the solution)
Dim oRootItem As UIHierarchyItem
oRootItem = oSolutionExplorer.UIHierarchyItems.Item(1)
Dim oChildItem As UIHierarchyItem

' Collapse each project node
For Each oChildItem In oRootItem.UIHierarchyItems
CollapseMe(oChildItem, oSolutionExplorer)
Next

' Select the solution node, or else when you click on the solution window
' scrollbar, it will synchronize the open document with the tree and pop
' out the corresponding node which is probably not what you want.
oRootItem.Select(vsUISelectionType.vsUISelectionTypeSelect)

End Sub


Sub CollapseMe(ByVal oRootItem As UIHierarchyItem, ByVal oSolutionExplorer As UIHierarchy)

Dim oChildItem As UIHierarchyItem

For Each oChildItem In oRootItem.UIHierarchyItems
CollapseMe(oChildItem, oSolutionExplorer)
Next

oRootItem.UIHierarchyItems.Expanded = False 

' Added to deal with the Visual Studio bug
If (oRootItem.UIHierarchyItems.Expanded = True) Then
oRootItem.Select(vsUISelectionType.vsUISelectionTypeSelect)
oSolutionExplorer.DoDefaultAction()
End If

End Sub

End Module