共用方式為


如何:將一個命令繫結至多個鍵盤快速鍵

.Visual Studio 增益集在 Visual Studio 2013 中已不適用。 您應該升級您的增益集至 VSPackage 擴充套件。 如需升級的詳細資訊,請參閱 常見問題集:將增益集轉換成 VSPackage 擴充功能

您可以將多個鍵盤快速鍵繫結至一個命令。 例如,有兩位使用者處理同一個專案,但是各自喜歡用不同的快速鍵發出同樣的命令,這麼做將會很有用。 若要使用這種繫結方式,可以在 Object 型別的陣列中,將快速鍵當做字串元素傳遞。

注意事項注意事項

在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置:您所擁有的 Visual Studio 版本和使用的設定決定了這些項目。如需詳細資訊,請參閱Visual Studio 中的自訂開發設定

若要將命令繫結至多個鍵盤快速鍵

  1. 使用 [Visual Studio 增益集精靈] 建立增益集。 為專案命名,然後按一下 [確定] 以啟動精靈。

    如需如何使用 [Visual Studio 增益集精靈] 的詳細資訊,請參閱 如何:建立增益集

  2. 在 [選取程式語言] 頁上,選取 [使用 Visual C# 建立增益集] 以執行本主題中的 Visual C# 範例,或選取 [使用 Visual Basic 建立增益集] 以執行 Visual Basic 範例。

  3. 在 [Visual Studio 增益集精靈] 產生之程式碼的 Connect 類別中,貼上範例函式。

  4. 若要建立預設的鍵盤設定的複本,請移至 C:\Program Files\Microsoft Visual Studio 10\Common7\IDE\。 以滑鼠右鍵按一下其中一個 .vsk 檔,然後按一下 [複製]。 將複製的檔案貼入同一個資料夾中。 複製的檔案會命名為 .vsk file name複本。

  5. 重新命名檔案的複本。

  6. 若要確認新的 .vsk 檔是否顯示在鍵盤繫結清單中,請在 Visual Studio 中,按一下 [工具] 功能表上的 [選項]。

  7. 在 [選項] 對話方塊的左窗格中,展開 [環境] 資料夾並選取 [鍵盤]。

    請確認您先前重新命名的 .vsk 檔案名稱,顯示在 [套用下列其他鍵盤對應配置] 清單中。

  8. 在執行增益集範例之前,請確定鍵盤繫結已設為 [(預設)]。 作法是在 [選項] 對話方塊中,按一下 [鍵盤] 窗格的 [重設]。

  9. 在增益集範例的 prop.Value = "< Filename.vsk>" 步驟中,使用您先前指定的新鍵盤配置名稱取代 <Filename.vsk>。

  10. OnConnection 方法呼叫函式,如 如何:編譯和執行 Automation 物件模型程式碼範例所述。

  11. 建置增益集並按一下 [工具] 功能表上的 [增益集管理員],然後選取您建立的增益集,再按一下 [確定]。

    該命令便會繫結至兩個不同的快速鍵。 按 CTRL+SHIFT+ALT+Y 或 CTRL+SHIFT+ALT+X 顯示 [新增檔案] 對話方塊。

範例

在下列範例中,會使用兩個新的鍵盤快速鍵取代現有的鍵盤快速鍵。

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)
    BindSingle(_applicationObject)
End Sub
Sub BindSingle(ByVal dte As DTE2)
    ' Adds two new keybindings to a command.
    Dim cmds As Commands
    Dim cmd As Command
    Dim props As EnvDTE.Properties = DTE.Properties("Environment", _"Keyboard")
    Dim prop As EnvDTE.Property
    Dim bindings(1) As Object

    ' Make a writeable copy of the default keymapping scheme.
    prop = props.Item("SchemeName")
    prop.Value = "<FileName.vsk>"
    ' Assign the two shortcut key combinations, CTRL+SHIFT+ALT+Y and 
    ' CTRL+SHIFT+ALT+X, to the two bindings array elements. 
    bindings(0) = "Global:: CTRL+SHIFT+ALT+Y"
    bindings(1) = "Global:: CTRL+SHIFT+ALT+X"
    ' Set references to the Commands collection and the File.NewFile
    ' command.
    cmds = DTE.Commands
    cmd = cmds.Item("File.NewFile")
    ' Assign the contents of the bindings array to the Bindings 
    ' property.
    cmd.Bindings = bindings
End Sub
public void OnConnection(object application,
 ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    // Pass the applicationObject member variable to the code example.
    BindMultiple(_applicationObject ); 
}

public void BindMultiple( DTE2 dte ) 
{ 
    // Adds two new keybindings to a command.
    Commands cmds = null; 
    Command cmd = null; 
    EnvDTE.Properties props = dte.get_Properties( "Environment",
 "Keyboard"); 
    EnvDTE.Property prop = null; 
    Object[] bindings = new Object[ 2 ]; 

    // Make a writeable copy of the default keymapping scheme.
    prop = props.Item( "SchemeName" ); 
    prop.Value = "<FileName.vsk>"; 
    // Assign the two shortcut key combinations, CTRL+SHIFT+ALT+Y and 
    // CTRL+SHIFT+ALT+X, to the two bindings array elements. 
    bindings[ 0 ] = "Global:: CTRL+SHIFT+ALT+Y"; 
    bindings[ 1 ] = "Global:: CTRL+SHIFT+ALT+X"; 
    // Set references to the Commands collection and the File.NewFile
    // command.
    cmds = dte.Commands; 
    cmd = cmds.Item( "File.NewFile", -1 ); 
    // Assign the contents of the bindings array to the Bindings 
    // property.
    cmd.Bindings = bindings; 
} 

請參閱

工作

如何:繫結命令至單一快速鍵

如何:保留現有的鍵盤快速鍵

概念

繫結屬性參數格式

其他資源

繫結增益集命令至按鍵