方法: アドインをツール バーのボタンとして表示する
アドイン ウィザードを使ってアドインを作成するとき、ユーザー インターフェイス (UI) を作成するオプションを選択した場合、[ツール] メニューにアドインのコマンドが作成されます。もっと目立つ場所や、よりアクセスしやすい場所にアドインを表示したい場合は、Visual Studio のメイン ツール バー ([標準] ツール バー) に表示することもできます。
[!メモ]
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。
手順
アドインを標準ツール バーに表示させるには
アドイン プロジェクトを作成するか、既存のアドイン プロジェクトを開きます。
アドインのコードを次のコードで置き換えます。
使用例
Visual Studio の [標準] ツール バーにボタンを追加するアドインの作成方法を次の例に示します。これは、Visual Studio で最も使用頻度の高いツール バーです。
AddNamedCommand2 メソッドを使用して、アドインのコマンドを作成します。
次に、標準ツール バーの参照を取得します。
最後に、AddControl メソッドを使用して、新しいボタンを追加します。
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 stdCmdBarCtl 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 stdCmdBar As CommandBar
Dim cmdBarBtn As CommandBarButton
Try
_applicationObject = CType(application, DTE2)
_addInInstance = CType(addInInst, AddIn)
Select Case connectMode
Case ext_ConnectMode.ext_cm_AfterStartup, _
ext_ConnectMode.ext_cm_Startup
' Add the command
cmd = _applicationObject.Commands. _
AddNamedCommand(_addInInstance, _
"ANewCommand", "ANewCommand", _
"A new command", True, 59, Nothing, _
vsCommandStatus.vsCommandStatusSupported _
Or vsCommandStatus.vsCommandStatusEnabled)
' Reference the Visual Studio standard toolbar.
stdCmdBar =
CType(_applicationObject.CommandBars.Item _
("Standard"), _
Microsoft.VisualStudio.CommandBars.CommandBar)
' Add a button to the standard toolbar.
stdCmdBarCtl = CType(cmd.AddControl(stdCmdBar, _
stdCmdBar.Controls.Count + 1), _
Microsoft.VisualStudio.CommandBars. _
CommandBarControl)
' Set a caption for the toolbar button.
stdCmdBarCtl.Caption = "A new command bar"
' Set the toolbar's button style to an icon button.
cmdBarBtn = CType(stdCmdBarCtl, CommandBarButton)
cmdBarBtn.Style = MsoButtonStyle.msoButtonIcon
End Select
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
' When the add-in closes, get rid of the toolbar button.
If Not (stdCmdBarCtl Is Nothing) Then
stdCmdBarCtl.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 neededText = EnvDTE.vsCommandStatusTextWanted. _
vsCommandStatusTextWantedNone Then
If commandName = "cmdBar2.Connect.ANewCommand" Then
status = CType(vsCommandStatus.vsCommandStatusEnabled _
+ vsCommandStatus.vsCommandStatusSupported, _
vsCommandStatus)
Else
status = vsCommandStatus.vsCommandStatusUnsupported
End If
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 = "cmdBar2.Connect.ANewCommand" Then
handled = True
System.Windows.Forms.MessageBox.Show("Add-in running")
Exit Sub
End If
End If
End Sub
End Class