visual studio 매크로,Solution Explorer 의 모든 항목 접 기
11868 단어 exp
Imports
System
Imports
EnvDTE
Imports
EnvDTE80
Imports
EnvDTE90
Imports
System.Diagnostics
'
-----------------------------------------------------------
'
CollapseAll Module
'
-----------------------------------------------------------
'
Simple macro that fully collapses all items in the
'
Solution Explorer rather than just the top level node
'
'
To make live easier, bind it to a keyboard setting such
'
as Ctrl+Shift+` which by default has no bindings (Ctrl+` is
'
now used by Resharper
'
'
Tested and works with:
'
Visual Studio 2005
'
Visual Studio 2008
'
Visual Studio 2010
'
'
Originally from: http://bit.ly/bmRu3W
'
-----------------------------------------------------------
Public
Module
CollapseAll
Sub
CollapseTree()
'
Get the the Solution Explorer tree
Dim
solutionExplorer
As
UIHierarchy
solutionExplorer
=
DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()
'
Check if there is any open solution
If
(solutionExplorer.UIHierarchyItems.Count
=
0
)
Then
Return
End
If
'
Get the top node (the name of the solution)
Dim
rootNode
As
UIHierarchyItem
=
solutionExplorer.UIHierarchyItems.Item(
1
)
rootNode.DTE.SuppressUI
=
True
'
Collapse each project node
Collapse(rootNode, solutionExplorer)
'
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.
rootNode.Select(vsUISelectionType.vsUISelectionTypeSelect)
rootNode.DTE.SuppressUI
=
False
End Sub
Private
Sub
Collapse(
ByVal
item
As
UIHierarchyItem,
ByRef
solutionExplorer
As
UIHierarchy)
For
Each
innerItem
As
UIHierarchyItem
In
item.UIHierarchyItems
If
innerItem.UIHierarchyItems.Count
>
0
Then
'
Re-cursive call
Collapse(innerItem, solutionExplorer)
'
Collapse
If
innerItem.UIHierarchyItems.Expanded
Then
innerItem.UIHierarchyItems.Expanded
=
False
If
innerItem.UIHierarchyItems.Expanded
=
True
Then
'
Bug in VS 2005
innerItem.Select(vsUISelectionType.vsUISelectionTypeSelect)
solutionExplorer.DoDefaultAction()
End
If
End
If
End
If
Next
End Sub
End Module