方法 : コマンドを単一のショートカット キーに割り当てる

更新 : 2007 年 11 月

Bindings プロパティを使用すると、ショートカット キーの割り当てを表示する以外に、Visual Studio コマンドのショートカット キーを設定または変更することもできます。ショートカット キーを変更すると、以前のショートカット キーが置き換えられます (以前のショートカット キーは失われます)。また、新しいショートカット キーが別のコマンドで使用されている場合は、このショートカット キーが以前のコマンドから削除され、新しいコマンドに再度割り当てられます。

ただし、新しいショートカット キーを以前のショートカット キーと置き換えるのではなく、別のショートカット キーになるようにキー割り当てを保持する方法があります。この方法については、「方法 : コマンドの既存のショートカット キーを保持する」で説明します。

ms228753.alert_note(ja-jp,VS.90).gifメモ :

使用している設定またはエディションによっては、表示されるダイアログ ボックスやメニュー コマンドがヘルプに記載されている内容と異なる場合があります。ここに記載されている手順は、全般的な開発設定が適用されているものとして記述されています。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。

手順

コマンドを単一のショートカット キーに割り当てるには

  1. Visual Studio アドイン ウィザードを使用し、新しいアドインを作成します。プロジェクトに名前を付け、[OK] をクリックしてウィザードを開始します。

    Visual Studio アドイン ウィザードの使用方法の詳細については、「方法 : アドインを作成する」を参照してください。

  2. [プログラミング言語の選択] ページで、[Visual C# を使用してアドインを作成] を選択し、後の Visual C# の例を実行するか、[Visual Basic を使用してアドインを作成] を選択し、Visual Basic の例を実行します。

  3. 後述の関数の例を、Visual Studio アドイン ウィザードによって生成されたコードの Connect クラス内に貼り付けます。

  4. [オプション] ダイアログ ボックスの左ペインで、[環境] フォルダを展開し、[キーボード] を選択します。

    手順 7. で名前を変更した vsk ファイルの名前が [次の追加キーボード マップ スキームを適用] ボックスの一覧に表示されていることを確認します。

  5. アドインの例を実行する前に、キーボードの割り当てが [(既定)] に設定されていることを確認します。この設定を行うには、[オプション] ダイアログ ボックスの [キーボード] ペインで [リセット] をクリックします。

  6. 方法 : オートメーション オブジェクト モデルのコード例をコンパイルおよび実行する」に説明されているように、OnConnection メソッドから関数を呼び出します。

  7. アドインをビルドします。

  8. アドインを実行するには、[ツール] メニューの [アドイン マネージャ] をクリックし、作成したアドインを選択して、[OK] をクリックします。

    コマンドが単一のグローバル ショートカット キーに割り当てられます。キーボードの割り当てをテストするには、Ctrl + Shift + Alt + X キーを押し、[新しいファイル] ダイアログ ボックスが表示されるかどうかを確認します。

使用例

File.NewFile コマンドを単一のショートカット キー (F2 キー) に割り当てる方法を次のアドインの例に示します。

Public Sub OnConnection(ByVal application As Object, ByVal  _
  connectMode As ext_ConnectMode, ByVal addInInst As Object, ByRef  _
  custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    BindingsExample(_applicationObject)
            
End Sub

Sub BindingsExample(ByVal dte As DTE2)
    Dim cmds As Commands
    Dim cmd As Command
    Try
        ' Set references to the Commands collection and the 
        ' File.NewFile command.
        cmds = DTE.Commands
        cmd = cmds.Item("File.NewFile")

        ' Assigns the command (File.NewFile) globally to the F2 key.
        cmd.Bindings = "Global::F2"
        MsgBox("key remapped")
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub
public void OnConnection(object application, ext_ConnectMode 
connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    BindingsExample(_applicationObject);

}

public void BindingsExample(DTE2 dte)
{
    Commands cmds;
    Command cmd;

    try
    {
        // Set references to the Commands collection and the 
        // File.NewFile command.
        cmds = dte.Commands;
        cmd = cmds.Item("File.NewFile", 1);

        // Assigns the command (File.NewFile) globally to the F2 key.
        cmd.Bindings = "Global::F2";
        System.Windows.Forms.MessageBox.Show("key remapped");
    }
    catch (Exception ex)
    {
        System.Windows.Forms.MessageBox.Show(ex.Message);
    }
}

参照

処理手順

方法 : コマンドを複数のショートカット キーに割り当てる

方法 : コマンドの既存のショートカット キーを保持する

概念

Bindings プロパティのパラメータ形式

その他の技術情報

アドイン コマンドのキーへの割り当て