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

posted @   木狼  阅读(653)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示