用C#写vs插件中的一些Tip
2005-04-05 10:57
447 查看
最近用C#写了一个vs的插件,主要功能是插入标准的注释段和一些常用的代码段。在开发过程中,遇到了一些问题,也翻阅了一些资料,做了一番研究。这里对其中的一些小问题做一个简单的纪录,希望能够有所帮助。
(1)在OnConnection中,判断connectMode时,一定要加上ext_cm_AfterStartup
if(connectMode == Extensibility.ext_ConnectMode.ext_cm_UISetup
|| connectMode == Extensibility.ext_ConnectMode.ext_cm_Startup
|| connectMode == Extensibility.ext_ConnectMode.ext_cm_AfterStartup) // this line will work when u choose addin in addin manager
这样子,在vs的Addin Manager中选中插件时,插件才会重新显示出来,一般的范例中,只有前两个判断
(2)QueryState中,设置state时,要使用下面语句
if( 是你加入的command )
{
if( 满足显示的条件 )
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported|vsCommandStatus.vsCommandStatusEnabled;
else
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported;
}
else
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusUnsupported;
这样做,才能在条件不满足时,插件的菜单变灰
(3)判断代码窗口存在的方法是
(applicationObject.ActiveWindow != null) && (applicationObject.ActiveWindow.Type == vsWindowType.vsWindowTypeDocument)
就是说当前有活动窗口,而且其类型是文档类型
(4)在文档窗口插入字符的方法是
TextSelection ts = (TextSelection)applicationObject.ActiveDocument.Selection;
EditPoint ep = ts.ActivePoint.CreateEditPoint();
ep.Insert(strCode);
当然,还可以调用EditPoint的其它方法,来实现删除,替换等等
差不多就酱紫了,感觉用C#来做插件程序好简单啊,同时感到微软设计的对象模型用起来真是舒服,平时开发时如果能够自己设计出这么好的系统,该有多好阿,哈哈
(1)在OnConnection中,判断connectMode时,一定要加上ext_cm_AfterStartup
if(connectMode == Extensibility.ext_ConnectMode.ext_cm_UISetup
|| connectMode == Extensibility.ext_ConnectMode.ext_cm_Startup
|| connectMode == Extensibility.ext_ConnectMode.ext_cm_AfterStartup) // this line will work when u choose addin in addin manager
这样子,在vs的Addin Manager中选中插件时,插件才会重新显示出来,一般的范例中,只有前两个判断
(2)QueryState中,设置state时,要使用下面语句
if( 是你加入的command )
{
if( 满足显示的条件 )
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported|vsCommandStatus.vsCommandStatusEnabled;
else
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported;
}
else
status = (vsCommandStatus)vsCommandStatus.vsCommandStatusUnsupported;
这样做,才能在条件不满足时,插件的菜单变灰
(3)判断代码窗口存在的方法是
(applicationObject.ActiveWindow != null) && (applicationObject.ActiveWindow.Type == vsWindowType.vsWindowTypeDocument)
就是说当前有活动窗口,而且其类型是文档类型
(4)在文档窗口插入字符的方法是
TextSelection ts = (TextSelection)applicationObject.ActiveDocument.Selection;
EditPoint ep = ts.ActivePoint.CreateEditPoint();
ep.Insert(strCode);
当然,还可以调用EditPoint的其它方法,来实现删除,替换等等
差不多就酱紫了,感觉用C#来做插件程序好简单啊,同时感到微软设计的对象模型用起来真是舒服,平时开发时如果能够自己设计出这么好的系统,该有多好阿,哈哈
相关文章推荐
- 用C#写vs插件中的一些Tip
- 用C#写vs插件中的一些Tip
- 在vscode中使用pylint-django插件解决pylint的一些不必要的错误提示【转】
- eclipse中一些常用快捷键,与用vs.net软件进行c#编程时进行相同的快捷键的设置
- 关于安装VS插件vcredist的一些问题
- C#/Visual Studio一些被遗忘的的东西(快捷键/C#语法) 64位IE插件开发
- VS2013 的一些插件推荐及快捷设置
- 关于C#插件编程和插件宿主数据传递的一些方法
- AutoCode (vs插件)自动生成代码插件 下载及使用教程(C#版)( 更新简单自定义模板教程)
- C#编写IE插件的一些经验
- [Tip: C# commenting]Comment in C# for VS
- vs的一些常用设置和c#中的一些代码解释
- VS Code C# 插件离线版 1.6.2
- AutoCode (vs插件)自动生成代码插件 下载及使用教程(C#版)
- AutoCode (vs插件)自动生成代码插件 下载及使用教程(C#版)( 更新简单自定义模板教程)
- C#利用VS中插件打包并发布winfrom程序
- VsCode 插件整理之C#
- 理解vs解决方案和项目 一些c#入门知识
- VS_C#小tip
- 个人小站也面世了,没美工没啥的的确很丑,别喷啊,里面开源了一些小插件的代码,和收录了一些经典的文章,主要是C#方面的