VS2010编写自定义宏,定义解决方案项目折叠、展开快捷键
2014-08-20 14:47
204 查看
怎样自己写一个宏?
1.打开VS2010(或VS的其它版本),“Tools” --> "Macros"--->"Macros IDE...(Alt + F11)" 打开宏IDE
2.在宏IDE的工具栏中"MyMacros"->"Add Module"->CollapseExpandAllProject
![](http://img.blog.csdn.net/20140820142058750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWxpc2E1MjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
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",最后确定。
![](http://img.blog.csdn.net/20140820144658166?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWxpc2E1MjU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
5、接下来我们可以验证一下,打开一个解决方案,按下Alt + 数字,会执行对应操作。
注意,按下快捷键时,鼠标要定位到解决方案资源管理器上面,不然会报错
![](http://img.my.csdn.net/uploads/201408/20/1408516761_1676.png)
参见:
http://www.cnblogs.com/zhangronghua/archive/2010/05/12/Colloapse_Expand_Macro.html
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://img.my.csdn.net/uploads/201408/20/1408516761_1676.png)
参见:
http://www.cnblogs.com/zhangronghua/archive/2010/05/12/Colloapse_Expand_Macro.html
相关文章推荐
- 创建用于自定义SharePiont解决方案的Visual Studio项目
- VS中折叠/展开所有项目的宏
- 用VS2010建立解决方案,用于生成多个Dll的项目 .
- 点击VS2010解决方案中的某个项目的任意一个文件导致VS开发环境关闭
- VS2010添加自定义的项目模板及项模板
- 微软项目管理[EPM]数据库剖析1:如何取得全局项目有哪些自定义的大纲代码定义
- VS2010 自定义用户控件未出现在工具箱的解决方案
- 用VS2010建立解决方案,用于生成多个Dll的项目
- VS2008 打开 VS2010解决方案及项目
- VS2010 Visual Studio Installer 项目 系统必备(Bootstrapper) 自定义 之 WIC(Windows 图像处理组件)
- VS2008 打开 VS2010解决方案及项目
- VS2010数据库项目不能正常工作解决方案(转)
- 安装vs2010后新建项目FrameWork版本选择只有4.0的解决方案
- VS2008 打开VS2010解决方案及项目
- VS2008 打开 VS2010解决方案及项目
- C# 展开和折叠代码的快捷键
- 在vs2010中可以很方便的打包桌面程序和同一解决方案中一个项目引用另外一个项目的问题
- VS2010 编译包含有sphelper.h文件项目时,编译错误解决方案。
- [原创]自定义VS2010项目文件vcxproj动态管理inc lib
- VS2010团队开发调试器无法继续运行该进程,项目文件“”已被重命名或已不再解决方案中