Visual Studio 2008のコンテキストメニュー項目を追加する最も簡単な方法は何ですか?

StackOverflow https://stackoverflow.com/questions/210323

質問

Visual Studioで特定のファイル拡張子を右クリックしたときにカスタムメニュー項目を追加したい。

これを達成するためのヘルパーオープンソースプロジェクトがあるように見えますが、誰かがそれらを使用したことがあるかどうか、そしてそれらがどれほど簡単かを尋ねたいと思います-そして、私を助けて出発点を提供できますか?

私が調査したのは、 http://www.codeplex.com/ManagedMenuExtension

役に立ちましたか?

解決

Visual Studioアドインを作成する代わりに、マクロを使用してコンテキストメニューを追加する方法を説明するチュートリアルです。役に立てば幸いです:

Visual Studioのコンテキストメニューの拡張

他のヒント

ええ、最も簡単な方法は(VBで)タスクを処理するカスタムマクロを作成することです。

マクロの追加

まず、ツール>マクロ>マクロ IDE(Alt + F11)を選択します。すべてを明確にするには、たとえば" ContextMenu"などの新しいモジュールを追加します。次のコードを挿入します:

Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics

Public Module ContextMenu

Public Sub DoSomething()
    'Few declarations'
    Dim SolutionExplorer As UIHierarchy
    Dim Item As UIHierarchyItem
    Dim SelectedItem As EnvDTE.ProjectItem

    'Getting the solution explorer'
    SolutionExplorer = DTE.Windows.Item(Constants.vsext_wk_SProjectWindow).Object()

    'Iterating through all selected items'
    For Each Item In SolutionExplorer.SelectedItems
        'Getting the item'
        SelectedItem = CType(Item.Object, EnvDTE.ProjectItem)

        'Do some stuff here'
        If SelectedItem.FileNames(1).EndsWith("txt") Then
            MsgBox("We got the text file!", , SelectedItem.FileNames(1))
        Else
            MsgBox("We got something else...", , SelectedItem.FileNames(1))
        End If
    Next
End Sub
End Module

もちろん、選択したファイル名の処理方法をカスタマイズする必要があります。今のところ、すべてのファイルのポップアップが表示されますが、txtファイルの場合は異なります。

コンテキストメニューのカスタマイズ

2番目のタスクは、カスタムマクロをコンテキストメニューに追加することです。に行きます: ツール>カスタマイズ

「ツールバー」のリストからコンテキストメニューを選択します。タブ(すべてのコンテキストメニューを備えた新しいツールバーがメインウィンドウに表示されます)および" Commands"に切り替えます。タブ。次に、コンテキストメニューのツールバーから、次を選択します。"プロジェクトおよびソリューションコンテキストメニュー">アイテム、" Commands"タブ。右クリックメニューの下の名前/アイコン/ボタンを変更します。

これで、テストして使用する準備ができました。新しく追加したマクロがアイテムコンテキストメニューに表示されます。楽しんでください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top