Compartir a través de


Cómo: Enlazar un comando a varias combinaciones de teclas de método abreviado

Actualización: noviembre 2007

En lugar de enlazar una sola combinación de teclas de método abreviado a un comando, puede enlazar alternativamente a éste varias teclas de método abreviado. Esto puede ser útil, por ejemplo, si dos usuarios que trabajan en un proyecto prefieren teclas de método abreviado diferentes para ejecutar el mismo comando. Para lograrlo, debe pasar las teclas de método abreviado como elementos de una cadena en una matriz de tipo Object.

Nota:

Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, dependiendo de los valores de configuración o de edición activos. Estos procedimientos se desarrollaron con la Configuración general de desarrollo activa. Para cambiar la configuración, elija la opción Importar y exportarconfiguraciones del menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.

Para enlazar un comando a varias teclas de método abreviado

  1. Utilice el Asistente para complementos de Visual Studio con el fin de crear un nuevo 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#, que aparece a continuación, o Crear un complemento utilizando Visual Basic para ejecutar el ejemplo de Visual Basic.

  3. Pegue la función de ejemplo que aparece a continuación 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 8\Common7\IDE.

  5. Haga clic con el botón secundario del mouse (ratón) en uno de los archivos vsk y seleccione Copiar en el menú de acceso directo.

  6. Pegue la copia en la misma carpeta.

    La copia se denomina "Copia de <nombre del archivo vsk>".

  7. Cambie el nombre del archivo copiado.

  8. 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.

  9. 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 en el paso 7 aparece en el menú desplegable Aplicar el siguiente esquema de asignación de teclado adicional.

  10. 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.

  11. En el paso prop.Value = "< Filename.vsk>" del ejemplo de complementos, reemplace <Filename.vsk> por el nuevo nombre de la combinación de teclado que especificó en el paso 7.

  12. 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.

  13. Genere el complemento.

  14. Para ejecutar el complemento, haga clic en la opción Administrador de complementos del menú Herramientas, seleccione el complemento creado y haga clic 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 reemplaza el enlace de teclado existente por dos enlaces 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 enlaces de teclado de los comandos existentes

Conceptos

Formato de los parámetros de la propiedad Bindings

Otros recursos

Enlazar comandos de complementos a teclas