用C#写vs插件中的一些Tip

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

最近用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#来做插件程序好简单啊,同时感到微软设计的对象模型用起来真是舒服,平时开发时如果能够自己设计出这么好的系统,该有多好阿,哈哈

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航