Více rozbalených projektů se nevleze do okna Solution Exploreru. Jejich neustálé zavírání/otevírání jednoduše otravuje. V článku uvádím jak na zavírání použít jednoduché makro. Elegantně řeší problém zavření více otevřených projektů v Solution Exploreru. V některém z příštích článků doplníme další makro pro změnu na rozbalení všech projektů.
Úvod
Určitě víte, že rozbalení stromové struktury (jako například v Solution
Exploreru nebo Windows Exploreru) dosáhnete stisknutím ‘*’ na numerické
klávesnici. Stejně tak ‘-’ je naopak sbalí. Tohle ale není
řešení pro celý strom 'Solution'.

Obrázek 1: Startovní pozice
Níže uvádím postup jak dosáhnout sbalení všech projektů pomocí klávesové
zkratky:
-
Otevřít Macro Explorer (Alt-F8)
-
Přidal modul do projektu “MyMacros”
-
Do modulu vložit následující kód:
|
Imports
EnvDTE
Imports
System.Diagnostics
Public Module
CollapseAllChildNodes
Sub
CollapseAllChildNodes()
'This is to get the Solution Explorer tree
Dim
_objUIHierarchy As UIHierarchy
_objUIHierarchy= DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()
'This one is to check if there is any open solution
If (_objUIHierarchy.UIHierarchyItems.Count=0)
Then
Return
End If
'And finally to Get the top node (the name of the solution)
Dim
_objUIHierarchyItem As
UIHierarchyItem
_objUIHierarchyItem =
_objUIHierarchy.UIHierarchyItems.Item(1)
'Heres the final one to collapse each project node
Dim
_objCurrUIHierarchyItem
As
UIHierarchyItem
For Each
_objCurrUIHierarchyItem
In _objUIHierarchyItem.UIHierarchyItems
_objCurrUIHierarchyItem.UIHierarchyItems.Expanded=False
Next
'To leave you back onto the Node you had selected
_objUIHierarchyItem.Select(vsUISelectionType.vsUISelectionTypeSelect)
End Sub
End Module
|
-
Přiřadit klávesovou zkratku 'Ctrl-Shift-'-' ('-' z numerické klávesnice) pro
CollapseAllChildNodes

Obrázek 2: Cílová pozice