VS2010のマクロからツールバーのコマンドのキャプションを変更する方法は?

マクロからは、ツールバーにあるコマンドにアクセスしています。

Dim name As String = "Macros.MyMacros.MyMacros.ToggleExceptions"
Dim cmd As EnvDTE.Command = DTE.Commands.Item(name)

ツールバーでコマンドのキャプションを変更するにはどうすればよいですか?それは必要な特性を持っていないようです。それを別のものに投げ込む必要がありますか?

1
そのマクロは実際にツールバーのコマンドにアクセスしません。 DTE.CommandBarsが出発点になると私は思う。
追加された 著者 Hans Passant,

1 答え

私はそれを実装しました:

Private Sub Main()
    Const BAR_NAME As String = "MenuBar"
    Const CTL_NAME = "Foo"

    ChangeCommandCaption(BAR_NAME, CTL_NAME, "Bar")
End Sub

Private Sub ChangeCommandCaption(ByVal cmdBarName As String, ByVal ctlName As String, ByVal caption As String)
    Dim bars As Microsoft.VisualStudio.CommandBars.CommandBars

    bars = DirectCast(DTE.CommandBars, Microsoft.VisualStudio.CommandBars.CommandBars)
    If bars Is DBNull.Value Then Exit Sub

    Dim menuBar As CommandBar = bars.Item(cmdBarName)
    If menuBar Is DBNull.Value Then Exit Sub

    Dim cmdBarCtl As CommandBarControl

    Try
        cmdBarCtl = menuBar.Controls.Item(ctlName)
        If cmdBarCtl Is DBNull.Value Then Exit Sub
    Catch ex As Exception
        Exit Sub
    End Try

    cmdBarCtl.Caption = caption
End Sub
3
追加された