Visual Studio 2008 可扩展性开发(四):添加新的命令

发布时间:2017-6-27 18:21:50 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Visual Studio 2008 可扩展性开发(四):添加新的命令",主要涉及到Visual Studio 2008 可扩展性开发(四):添加新的命令方面的内容,对于Visual Studio 2008 可扩展性开发(四):添加新的命令感兴趣的同学可以参考一下。

前言 在之前的两篇随笔中,我介绍了Add-In的运行机制,这样对Add-In的事件、生命周期、与VS如何交互可以有个基本的了解了。现在是时候看看如何在VS中完成一些操作,这才是Add-In开发的目的所在。 一般的,Add-In应当提供一些界面元素,这样用户可以进行某些操作,比如在主菜单内添加一个菜单项,或者在编辑器的上下文菜单内添加一个菜单项,在本文中就来看看如何实现这些。 关于命令(Command) 考虑一个极为常见的场景:在编写代码的过程中,选中一段文本,点击Edit->Copy(或工具栏按钮)或者按下Ctrl+C,我们可以把选中文本拷贝到剪贴板,这个过程的背后发生了什么? 是什么完成的拷贝操作呢?答案是命令。可以认为命令就是某个特定的功能,如Copy、Paste、Cut等等。VS本身就内置大量的命令(有数千个之多),而上面说到的菜单项、工具栏或快捷键则执行了这些命令。通过Tools->Options菜单可以查看命令列表: 图1:VS的命令列表 值得注意的是,执行命令并非必须通过界面元素,比如在命令窗口中: 图2:在命令窗口执行命令 这样也可以执行同样的命令。现在我们知道存在多种方式来执行命令,即菜单、工具栏、快捷键或命令窗口,这里统称为触发者。在VS中,触发者与命令是分离开来的:用户通过触发者来执行命令,而命令负责检查自身的状态(名称、是否可见、是否可用等等)并执行。这意味着,命令可以对应一个或多个菜单项,也可以不对应任何菜单项。 另一方面,对于同一个命令,比如Edit.Copy,仍然可能有不同的情况。在文本编辑器内和在解决方案管理器内的Edit.Copy命令执行内容并不相同。这里有一个命令目标(Command Target)的概念,VS将命令转向给了命令目标,而命令目标按自己的实现来执行该命令。总结下来就是: 对象 职责 触发者 提供一种方式供用户使用 命令 一个逻辑实体,检查自身的状态,可以执行命令,也可以转向一个命令目标 命令目标 根据传递过来的命令,按自己的实现来执行它 关于命令栏(CommandBar) 命令是个“乖孩子”,首先是我们让它做什么它就做什么,第二就是它不会单独出门,它会跟其它同伴待在一块儿,它们都被放在命令栏中。比如主菜单中File下的那些菜单项。 既然这样,如果希望向已经存在的命令栏内添加命令,就得首先找到命令栏才能添加。现在来看一个例子,向Tools菜单中添加一个菜单项。 添加一个新命令 使用Add-In向导新建一个Add-In,名字定为NEnhancer,意为对VS进行增强:),以后关于Add-In的例子都会放在这里面。注意要选中向Tools菜单添加一个菜单项。在Connect类的OnConnection方法中可以看到添加菜单项的代码如下: C# Code - 向Tools菜单添加新项

上一篇:为何科技巨头的大额并购会频繁发生?
下一篇:采购订单me23n显示订单类型

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。