您的位置:首页 > 其它

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

2014-08-20 14:47 204 查看
怎样自己写一个宏?

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: