VS2010编写自定义宏,定义解决方案项目折叠、展开快捷键

VS2013之前的版本没有项目折叠功能

1.安装resharper插件,里面有项目折叠

2.自定义宏,然后设置快捷键。

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module CollapseExpandAllProject   ‘(特别注意:这里要与保存的Module名保持一致,不然无法调用宏 )
    Public Sub CollapseAllProject()
        lastSlashIndex = DTE.Solution.FullName.LastIndexOf("\") + 1  'Get the last slash index .
        solutionNameWithExtension = DTE.Solution.FullName.Substring(lastSlashIndex)  ' Get solution name with extension. 
        solutionName = solutionNameWithExtension.ToString().Substring(0, solutionNameWithExtension.ToString().Length - 4) ' Get the solution name without extension .
        count = 0
        For Each curProject As EnvDTE.Project In DTE.Solution.Projects
            Try
                DTE.ActiveWindow.Object.GetItem(solutionName + "\" + curProject.Name).UIHierarchyItems.Expanded = False
                count = count + 1
            Catch ex As ArgumentException
                Continue For
            End Try
        Next curProject


    End Sub


    Public Sub ExpandAllProject()
        lastSlashIndex = DTE.Solution.FullName.LastIndexOf("\") + 1  'Get the last slash index .
        solutionNameWithExtension = DTE.Solution.FullName.Substring(lastSlashIndex)  ' Get solution name with extension. 
        solutionName = solutionNameWithExtension.ToString().Substring(0, solutionNameWithExtension.ToString().Length - 4) ' Get the solution name without extension .
        count = 0


        For Each curProject As EnvDTE.Project In DTE.Solution.Projects
            Try
                DTE.ActiveWindow.Object.GetItem(solutionName + "\" + curProject.Name).UIHierarchyItems.Expanded = True
                count = count + 1
            Catch ex As ArgumentException
                Continue For
            End Try
        Next curProject
    End Sub

End Module

猜你喜欢

转载自www.cnblogs.com/itsone/p/10845287.html
今日推荐