程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 用C#寫vs插件中的一些Tip

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

編輯:.NET實例教程
      最近用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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved