如何:公開捷徑功能表的增益集
.Visual Studio 增益集在 Visual Studio 2013 中已不適用。 您應該升級您的增益集至 VSPackage 擴展套件。 如需升級的詳細資訊,請參閱 常見問題集:將增益集轉換成 VSPackage 擴充功能。
Visual Studio Automation 模式可將增益集命令放置在最上層工能表 (例如在 [工具] 功能表上) 的工作變得容易,您同時還能將命令加入至捷徑功能表和子功能表。
不過,若要這麼做,您必須使用 Microsoft Visual Studio 命令列物件模型,明確定義目標捷徑功能表和子功能表。 然後必須呼叫 Visual Studio AddControl 方法。
捷徑功能表與 Visual Studio 中的其他功能表類似,若要存取捷徑功能表,請指向下拉式功能表中的向下鍵,或在整合式開發環境 (IDE) 中以滑鼠右鍵按一下項目。
若要將命令加入至捷徑功能表 (或者任何功能表或工具列),您必須先知道它的命令名稱。 您可透過搜尋 [工具] 功能表之 [選項] 對話方塊中的 [鍵盤] 節點來尋找它。
下列程序會示範如何將增益集命令加入至 [工作清單] 的捷徑功能表。
注意事項 |
---|
根據您目前使用的設定或版本,您所看到的對話方塊與功能表指令可能會與 [說明] 中描述的不同。使用 [一般開發設定] 開發了這些程序。若要變更設定,請從 [工具] 功能表中選擇 [匯入和匯出設定]。如需詳細資訊,請參閱Visual Studio 中的自訂開發設定。 |
若要將增益集命令加入至捷徑功能表
在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。
在 [新增專案] 對話方塊中展開 [其他專案類型],按一下 [擴充性],然後按一下 [範本] 窗格中的 [Visual Studio 增益集]。
將增益集命名為 ContextCmd,然後按一下 [確定] 以啟動 [Visual Studio 增益集精靈]。
藉由核取 [您要建立增益集的命令列 UI 嗎?] 方塊的方式,選取建立增益集之使用者介面 (UI) 的選項。
如此一來會將某些 UI 程式碼加入至 OnConnection 方法。 同時也會加入 Exec 方法 (當有人按一下增益集命令時它會處理事件) 和 QueryStatus 方法 (提供增益集狀態的資訊)。
請將程式碼代換如下:
Imports System Imports Microsoft.VisualStudio.CommandBars Imports Extensibility Imports EnvDTE Imports EnvDTE80 Public Class Connect Implements IDTExtensibility2 Implements IDTCommandTarget Dim _applicationObject As DTE2 Dim _addInInstance As AddIn Dim cmdBarCtl As CommandBarControl Public Sub New() End Sub Public Sub OnConnection(ByVal application As Object, ByVal _ connectMode As ext_ConnectMode, ByVal addInInst As Object, _ ByRef custom As Array) Implements _ IDTExtensibility2.OnConnection Dim cmd As Command Dim cmdBar As CommandBar _applicationObject = CType(application, DTE2) _addInInstance = CType(addInInst, AddIn) Try If CType(ext_ConnectMode.ext_cm_AfterStartup Or _ ext_ConnectMode.ext_cm_Startup, Boolean) Then ' If the command does not exist, add it. If cmd Is Nothing Then cmd = _applicationObject.Commands. _ AddNamedCommand(_addInInstance, _ "newCmd", "newCmd", "Runs the add-in.", _ True, 59, Nothing, _ vsCommandStatus.vsCommandStatusSupported _ Or vsCommandStatus.vsCommandStatusEnabled) End If ' Reference the Task List shortcut menu. cmdBar = CType(_applicationObject. _ CommandBars.Item("Task List"), _ Microsoft.VisualStudio.CommandBars.CommandBar) ' Add a command to the Task List's shortcut menu. cmdBarCtl = CType(cmd.AddControl(cmdBar, _ cmdBar.Controls.Count + 1), _ Microsoft.VisualStudio.CommandBars. _ CommandBarControl) cmdBarCtl.Caption = "A New Command" End If Catch e As System.Exception System.Windows.Forms.MessageBox.Show(e.ToString) End Try End Sub Public Sub OnDisconnection(ByVal disconnectMode As _ ext_DisconnectMode, ByRef custom As Array) Implements _ IDTExtensibility2.OnDisconnection Try ' Delete the command bar control from the ' shortcut menu. If Not (cmdBarCtl Is Nothing) Then cmdBarCtl.Delete() End If Catch e As System.Exception System.Windows.Forms.MessageBox.Show(e.ToString) End Try End Sub Public Sub OnAddInsUpdate(ByRef custom As Array) Implements _ IDTExtensibility2.OnAddInsUpdate End Sub Public Sub OnStartupComplete(ByRef custom As Array) Implements _ IDTExtensibility2.OnStartupComplete End Sub Public Sub OnBeginShutdown(ByRef custom As Array) Implements _ IDTExtensibility2.OnBeginShutdown End Sub Public Sub QueryStatus(ByVal commandName As String, ByVal _ neededText As vsCommandStatusTextWanted, ByRef status As _ vsCommandStatus, ByRef commandText As Object) Implements _ IDTCommandTarget.QueryStatus If commandName = "ContextCmd.Connect.newCmd" Then status = CType(vsCommandStatus.vsCommandStatusEnabled _ + vsCommandStatus.vsCommandStatusSupported, _ vsCommandStatus) Else status = vsCommandStatus.vsCommandStatusUnsupported End If End Sub Public Sub Exec(ByVal commandName As String, ByVal _ executeOption As vsCommandExecOption, ByRef varIn As _ Object, ByRef varOut As Object, ByRef handled As Boolean) _ Implements IDTCommandTarget.Exec handled = False If executeOption = vsCommandExecOption. _ vsCommandExecOptionDoDefault Then If commandName = "ContextCmd.Connect.newCmd" Then handled = True System.Windows.Forms.MessageBox.Show("Add-in _ running...") End If End If End Sub End Class
加入在按一下 Exec 程序中的命令時,您想要執行的程式碼。
建置增益集然後執行它。
按一下 [檢視] 功能表上的 [工作清單] 以顯示 [工作清單]。
在 [工具] 功能表中,按一下 [增益集管理員]。
在 [增益集管理員] 中核取 ContextCmd 增益集旁邊的方塊以啟動它。
以滑鼠右鍵按一下 [工作清單]。
[ContextCmd] 增益集命令會出現在捷徑功能表上。