怎样自己写一个宏?
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