Lavoro su solution che hanno decine di progetti al loro interno e mi trovo spesso nel noiosissimo lavoro di chiudere i nodi di progetto uno per uno a mano. Purtroppo non esiste un comando già pronto in Visual Studio.NET 2003; per risolvere il problema ho trovato questa macro su code project:
Sub CollapseAll() ' Get the the Solution Explorer tree Dim UIHSolutionExplorer As UIHierarchy UIHSolutionExplorer = DTE.Windows.Item( _
Constants.vsext_wk_SProjectWindow).Object()
' Check if there is any open solution If (UIHSolutionExplorer.UIHierarchyItems.Count = 0) Then Return End If ' Get the top node (the name of the solution) Dim UIHSolutionRootNode As UIHierarchyItem UIHSolutionRootNode = UIHSolutionExplorer.UIHierarchyItems.Item(1)
' Collapse each project node Dim UIHItem As UIHierarchyItem For Each UIHItem In UIHSolutionRootNode.UIHierarchyItems UIHItem.UIHierarchyItems.Expanded =
False 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. UIHSolutionRootNode.Select(vsUISelectionType.vsUISelectionTypeSelect)
End Sub
Per usarla: clic dal menu Tools -> Macros -> Macros IDE copiare e incollare il codice precedente dentro il Module 1.
Per aggiungerla alla toolbar di Visual Studio:
- Clic con il destro sulla toolbar e dal menu selezionare Customize...
- Come Category scegliere Macros
- Nei Commands scegliere MyMacros.Module1.CollapseAll
- Trascinare il command nella toolbar
- Clic con il destro sul pulsante
- Nella casella Name: scrivere Collapse All
- Eventualmente scegliere un immagine con Change Button Image
Spero torni utile a me fa risparmiare un sacco di tempo e frustrazione.