Freigeben über


Gewusst wie: Zuordnen eines Befehls zu mehreren Tastenkombinationen

Add-Ins für Visual Studio sind in Visual Studio 2013 veraltet. Sie müssen für Ihre Add-Ins ein Upgrade auf VSPackage-Erweiterungen durchführen. Weitere Informationen über das Durchführen eines Upgrades finden Sie unter FAQ: Konvertieren von Add-Ins in VSPackage-Erweiterungen.

Sie können einem Befehl mehrere Tastenkombinationen zuordnen. Dies kann z. B. hilfreich sein, wenn an einem Projekt zwei Benutzer arbeiten, die zum Ausführen desselben Befehls eine jeweils andere Tastenkombination bevorzugen. Die Zuordnung wird vorgenommen, indem die Tastenkombinationen als Zeichenfolgenelemente in einem Array des Typs Object übergeben werden.

Hinweis

Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten.Die Elemente werden durch die verwendete Ausgabe von Visual Studio und die gewählten Einstellungen bestimmt.Weitere Informationen finden Sie unter Anpassen der Entwicklungseinstellungen in Visual Studio.

So ordnen Sie einem Befehl mehrere Tastenkombinationen zu

  1. Erstellen Sie mit dem Visual Studio Add-In-Assistenten ein Add-In. Benennen Sie das Projekt, und klicken Sie auf OK, um den Assistenten zu starten.

    Weitere Informationen zum Verwenden des Visual Studio-Add-In-Assistenten finden Sie unter Gewusst wie: Erstellen von Add-Ins.

  2. Wählen Sie auf der Seite Wählen Sie eine Programmiersprache aus entweder Ein Add-In mit Visual C# erstellen aus, um das Visual C#-Beispiel in diesem Thema auszuführen, oder Ein Add-In mit Visual Basic erstellen, um das Visual Basic-Beispiel auszuführen.

  3. Fügen Sie die Beispielfunktion in die Connect-Klasse des Codes ein, der vom Visual Studio Add-In-Assistenten generiert wird.

  4. Um eine Kopie der Standardtastatureinstellungen zu erstellen, wechseln Sie zu "C:\Programme\Microsoft Visual Studio 10\Common7\IDE\". Klicken Sie mit der rechten Maustaste auf eine der VSK-Dateien, und wählen Sie Kopieren aus. Fügen Sie die Kopie in denselben Ordner ein. Die Kopie ist "Kopie von .vsk file name".

  5. Benennen Sie die Kopie der Datei um.

  6. Um zu überprüfen, ob die neue VSK-Datei in der Liste der Tastaturzuordnungen angezeigt wird, klicken Sie in Visual Studio im Menü Extras auf Optionen.

  7. Erweitern Sie im linken Bereich des Dialogfelds Optionen den Ordner Umgebung, und wählen Sie Tastatur aus.

    Überprüfen Sie, ob der Name der VSK-Datei, die Sie zuvor umbenannt haben, in der Liste Folgendes zusätzliches Tastaturzuordnungsschema anwenden angezeigt wird.

  8. Stellen Sie vor dem Ausführen des Add-In-Beispiels sicher, dass die Tastaturzuordnungen auf (Standard) festgelegt sind. Dazu klicken Sie im Dialogfeld Optionen im Bereich Tastatur auf Zurücksetzen.

  9. Ersetzen Sie in Schritt prop.Value = "< Filename.vsk>" des Add-In-Beispiels <Filename.vsk> durch den Namen des neuen Tastaturschemas, den Sie zuvor angegeben haben.

  10. Rufen Sie die Funktion von der OnConnection-Methode auf, wie unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell beschrieben.

  11. Erstellen Sie das Add-In und führen Sie es anschließend aus. Klicken Sie dazu im Menü Extras auf Add-In-Manager, wählen Sie das Add-In aus, das Sie erstellt haben, und klicken Sie auf OK.

    Der Befehl wird zwei verschiedenen Tastenkombinationen zugeordnet. Drücken Sie entweder STRG+UMSCHALT+ALT+Y oder STRG+UMSCHALT+ALT+X, um das Dialogfeld Neue Datei anzuzeigen.

Beispiel

Im folgenden Beispiel wird die vorhandene Tastenkombination durch zwei neue Tastenkombinationen ersetzt.

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; 
} 

Siehe auch

Aufgaben

Gewusst wie: Zuordnen eines Befehls zu einer einzelnen Tastenkombination

Gewusst wie: Beibehalten vorhandener Tastenkombinationen

Konzepte

Parameterformat der Bindings-Eigenschaft

Weitere Ressourcen

Zuordnen von Add-In-Befehlen zu Tasten