当前位置:  开发笔记 > 开发工具 > 正文

在Visual Studio中折叠所有项目的最佳/最快/最简单的方法是什么?

如何解决《在VisualStudio中折叠所有项目的最佳/最快/最简单的方法是什么?》经验,为你挑选了3个好方法。

我目前正在使用DPack,因为这会在解决方案资源管理器中为"解决方案"节点添加"折叠所有项目"选项.它工作得很好,但可能需要一段时间才能执行,并不总是完全崩溃一切.

还有更好的选择吗?优选地,免费且易于安装/设置.有很多,但最好的工作,没有任何错误或性能问题.



1> Tom Robinson..:

我使用以下宏在Visual Studio 2005和Visual Studio 2008中工作:

    查看>其他Windows>宏浏览器(Alt + F8)

    在Macro Explorer中右键单击MyMacros节点

    新模块......

    将它命名为CollapseAll(或任何你喜欢的)

    使用下面显示的代码替换默认代码

    文件>保存折叠全部(Ctrl + S)

    关闭宏编辑器

要设置键盘快捷键:

    工具>自定义...>命令

    键盘...

    显示包含以下内容的命令:Macros.MyMacros.CollapseAll.CollapseAll

    指定键盘快捷键(我使用Alt + C)

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics

Public Module CollapseAll
    Sub CollapseAll()

        ' 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

    Sub CollapseSelected()

        ' 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 selected As Array = solutionExplorer.SelectedItems

        If (selected.Length = 0) Then Return

        Dim rootNode As UIHierarchyItem = selected(0)
        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

我没有编写这段代码而且我不确定这段代码来自何处,但是它在网上有各种变化.



2> aku..:

Visual Studio的电源命令可以解决问题.没有注意到它们的任何性能\稳定性问题.



3> Andy Stevens..:

对于VS2005,我一直在使用CoolCommands 4.0.旧版3.0版本的功能描述更完整.版本3有一个.msi安装程序.版本4是一个.zip文件(无论如何我的环境都比较容易).

我最喜欢的功能(完整列表的一个子集):

来自解决方案资源管理器:

折叠所有项目

打开包含文件夹(仅限项目/文件级别)

从编辑器上方的文件名选项卡

在Solution Explorer中找到

从编辑器中的上下文菜单中

演示字体

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有