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

怎样自己写一个宏?

1.打开VS2010(或VS的其它版本),“Tools” -->  "Macros"--->"Macros IDE...(Alt + F11)" 打开宏IDE

2.在宏IDE的工具栏中"MyMacros"->"Add Module"->CollapseExpandAllProject

3. 将初始内容替换成以下代码

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

Public Module CollapseExpandAllProject  
(特别注意:这里要与保存的Module名保持一致,不然无法调用宏 

    '----------------------------------------------- 
    'Collapse All projects  折叠
    'Author:ZhangRongHua
    'Date:2010-05-12
    '-----------------------------------------------
    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

    '----------------------------------------------- 
    'Expand All projects  展开
    'Author:ZhangRongHua
    'Date:2010-05-12
    '-----------------------------------------------
    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

保存后关闭宏IDE

4、回到VS2010主界面(注意是在VS2010主界面,不是打开了某一个解决方案的主界面),"Tools"--->"Options"--->"Environment"--->"Keyboard"--->在Show commands containing:下的编辑框中输入macro(所有含macro的那些名称),会看到有"MyMacros.CollapseExpandAllProject.CollapseAllProject"的项,选中它,在Press shortcut keys:下自定义快捷键,建议用Alt +  数字0-9和-+键组合,以免与编译环境快捷键发生冲突,之后"Assign",最后确定。


5、接下来我们可以验证一下,打开一个解决方案,按下Alt + 数字,会执行对应操作。

注意,按下快捷键时,鼠标要定位到解决方案资源管理器上面,不然会报错



参见:

http://www.cnblogs.com/zhangronghua/archive/2010/05/12/Colloapse_Expand_Macro.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值