最近工作需要,學習一些外掛程式的開發。ide平台不是.net開發的。用起來比較累。
在visualstudio裡建立 visualstudio外接程式。
選單主要的工作方法
onconnection querystatus exec
connectmode: 列舉,執行模式
ext_cm_afterstartup
外接程式是在應用程式啟動後載入的。
ext_cm_startup
啟動時載入的。
ext_cm_uisetup
自安裝後首次被啟動。
public void querystatus(string commandname, vscommandstatustextwanted neededtext, ref vscommandstatus status, ref object commandtext)
neededtext: 列舉,指定是否返回檢查資訊
vscommandstatustextwantednone
不返回資訊。
vscommandstatustextwantedname
返回命令名。
vscommandstatustextwantedstatus返回命令狀態。
status: 列舉,當前狀態
vscommandstatusunsupported
命令在此上下文中不受支援。
vscommandstatussupported
命令在此上下文中受支援。
vscommandstatusenabled
啟用狀態。
vscommandstatuslatched
鎖存狀態。
vscommandstatusninched 保
留。
vscommandstatusinvisible
隱藏狀態。
public void exec(string commandname, vscommandexecoption executeoption, ref object varin, ref object varout, ref bool handled)
executeoption: 列舉
vscommandexecoptiondodefault 執行預設行為,無論是否提示使用者輸入。
vscommandexecoptionpromptuser 不提示使用者就執行命令。
vscommandexecoptiondopromptuser 獲取使用者輸入後執行命令。
vscommandexecoptionshowhelp 如果存在相應命令的幫助,則顯示它,但不執行該命令。
我們先建立個靜態類來幫我們描述選單的問題 圖形的資訊
using system;
using system.collections;
using system.collections.generic;
using system.text;
using envdte;
using envdte80;
public class toolsdata
///
/// 返回顯示名稱
///
public string viewtext }
///
/// 返回命令
///
public string command }
///
/// 返回圖形索引
///
public int imageindex }
///
/// 返回類名稱
///
public string classname }
///
/// 標籤名字
///
public string tip }
} }}
建立乙個新增選單類和具體選單呼叫的類
using system;
using system.collections.generic;
using system.text;
using envdte;
using envdte80;
using microsoft.visualstudio.commandbars;
using system.windows.forms;
namespace dskjaddin.drawfactory
;foreach (drawfactory.begindata.toolsdata onedata in drawfactory.begindata.tool)
}
}public static void runmenu(string p_command, ref bool p_handled)}}
public static void runcommand(string p_command, ref vscommandstatus status)}}
}}改動onconnection方法為,這裡要注意的是 toolscontrol = menubarcommandbar.controls["**生成"];
如果當前vs沒有直接就報錯`~不會返回null
toolscontrol = menubarcommandbar.controls[toolsmenuname];
}commandbarpopup toolspopup = (commandbarpopup)toolscontrol;
drawfactory.factory.addmenu(commands, toolspopup); }}
改變 querystatus方法
public void querystatus(string commandname, vscommandstatustextwanted neededtext, ref vscommandstatus status, ref object commandtext)
}改邊exec方法
public void exec(string commandname, vscommandexecoption executeoption, ref object varin, ref object varout, ref bool handled)
}注意 在querystatus方法裡必須要執行
status = (vscommandstatus)vscommandstatus.vscommandstatussupported | vscommandstatus.vscommandstatusenabled;
如果不執行 選單回不再顯示
VS2017外掛程式開發 專案右鍵選單
1.建立自定義命令 2.更改.vsct中group節點的id group guid guidpublishowinpackagecmdset1 id mymenugroup priority 0x0600 parent guid guidshlmainmenu id idm vs ctxt proj...
Mobile開發 今日選單外掛程式
這篇文章不太好整理,再加上最近忙其他的去了 不給公司賺錢,飯碗保不住哦 0 發的有點慢。今日外掛程式,這個問題剛開始也困擾我很久,我相信會c 的人會感覺容易多了。到處找,到處搜,終於找到個符合自己要求的,您慢慢往下看。外掛程式分為三個部分,分別為cabsample,mytoday,setupdll ...
VS外掛程式開發筆記
關於vs外掛程式開發的一篇很懶的筆記。demo demo在這裡 dllreferencepathchanger 微軟官方demo在這裡 vssdk extensibility samples 基本步驟看這裡 visual studio 2015 外掛程式開發 從入門到放棄 visual studio...