VS外掛程式開發(1 選單)

2021-04-20 15:01:39 字數 3873 閱讀 5117

最近工作需要,學習一些外掛程式的開發。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...