Compartir a través de


Cómo: Enlazar un comando a varios métodos abreviados de teclado

Los complementos de Visual Studio están desusados en Visual Studio 2013. Debe actualizar los complementos a las extensiones de VSPackage. Para obtener más información sobre la actualización, vea Preguntas más frecuentes: Convertir complementos en extensiones de VSPackage.

Es posible enlazar más de un método abreviado de teclado a un comando. Esto puede ser útil, por ejemplo, cuando dos usuarios que trabajan en un proyecto prefieren un método abreviado diferente para el mismo comando. Para lograr este enlace, debe pasar los métodos abreviados como elementos de una cadena en una matriz de tipo Object.

Nota

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones.La edición de Visual Studio que tenga y la configuración que esté usando determinan estos elementos.Para obtener más información, vea Personalizar la configuración de desarrollo en Visual Studio.

Para enlazar un comando a varios métodos abreviados de teclado

  1. Use el Asistente para complementos de Visual Studio para crear un complemento. Asigne un nombre al proyecto y haga clic en Aceptar para iniciar el asistente.

    Para obtener más información sobre el uso del Asistente para complementos de Visual Studio, vea Cómo: Crear un complemento.

  2. En la página Seleccione un lenguaje de programación, seleccione Crear complemento utilizando Visual C# para ejecutar el ejemplo de Visual C# de este tema o Crear un complemento utilizando Visual Basic para ejecutar el ejemplo de Visual Basic.

  3. Pegue la función de ejemplo en la clase Connect del código generado por el Asistente para complementos de Visual Studio.

  4. Para crear una copia de la configuración predeterminada del teclado, vaya a C:\Archivos de programa\Microsoft Visual Studio 10\Common7\IDE\. Haga clic con el botón secundario en uno de los archivos .vsk y, a continuación, haga clic en Copiar. Pegue la copia en la misma carpeta. La copia se denomina "Copia de .vsk file name".

  5. Cambie el nombre de la copia del archivo.

  6. Para comprobar que el nuevo archivo .vsk aparece en la lista de enlaces del teclado, en Visual Studio, haga clic en el comando Opciones del menú Herramientas.

  7. En el panel izquierdo del cuadro de diálogo Opciones, expanda la carpeta Entorno y seleccione Teclado.

    Asegúrese de que el nombre del archivo .vsk al que cambió de nombre aparece en la lista Aplicar la siguiente combinación de asignación de teclado adicional.

  8. Antes de ejecutar el ejemplo del complemento, asegúrese de que los enlaces de teclado se establezcan en (Predeterminado). Para ello, haga clic en Restablecer en el panel Teclado del cuadro de diálogo Opciones.

  9. En el paso prop.Value = "< Filename.vsk>" del ejemplo de complemento, reemplace <Filename.vsk> con el nuevo nombre de combinación de teclado que especificó antes.

  10. Llame a la función desde el método OnConnection, como se describe en Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización.

  11. Compile el complemento y, a continuación, ejecútelo: haga clic en Administrador de complementos en el menú Herramientas, seleccione el complemento que creó y haga clic, a continuación, en Aceptar.

    El comando se enlaza a dos teclas de método abreviado diferentes. Presione CTRL+MAYÚS+ALT+Y o CTRL+MAYÚS+ALT+X para mostrar el cuadro de diálogo Nuevo archivo.

Ejemplo

En el ejemplo siguiente se sustituye el método abreviado de teclado existente por dos nuevos.

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

Vea también

Tareas

Cómo: Enlazar un comando a una única tecla de método abreviado

Cómo: Conservar los métodos abreviados de teclado existentes

Conceptos

Formato de los parámetros de la propiedad Bindings

Otros recursos

Enlazar comandos de complementos a teclas