Como associar um comando a vários atalhos de teclado
Os suplementos do Visual Studio foram substituídos no Visual Studio 2013. Você deve atualizar seus suplementos para as extensões VSPackage. Para obter mais informações sobre atualização, consulte Perguntas frequentes: convertendo suplementos em extensões VSPackage.
Você pode associar mais de um atalho de teclado a um comando. Isso pode ser útil quando, por exemplo, dois usuários que estão trabalhando em um projeto e cada um prefere um atalho diferente para o mesmo comando. Essa associação é realizada transmitindo os atalhos como elementos de cadeia de caracteres em uma matriz do tipo Object.
Dica
Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário Visual Studio nas instruções a seguir.A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Personalizando configurações de desenvolvimento no Visual Studio.
Para associar um comando a vários atalhos de teclado
Use o Assistente do suplemento do Visual Studio para criar um suplemento. Nomeie o projeto e clique em OK para iniciar o assistente.
Para obter mais informações sobre como usar o Assistente de suplemento do Visual Studio, consulte Como criar um suplemento.
Na página Selecione uma Linguagem de Programação, selecione Criar um Suplemento usando o Visual C# para executar o exemplo do Visual C# neste tópico ou Criar um Suplemento Usando o Visual Basic para executar o exemplo do Visual Basic.
Cole a função de exemplo na classe Connect do código gerado pelo Assistente de Suplemento do Visual Studio.
Para criar uma cópia das configurações de teclado padrão, vá para \Arquivos de Programas\Microsoft Visual Studio 10\Common7\IDE\. Clique com o botão direito do mouse em um dos arquivos .vsk e clique em Copiar. Cole a cópia na mesma pasta. A cópia é chamada de “Cópia de .vsk file name”.
Renomeie a cópia do arquivo.
Para verificar se o novo arquivo .vsk aparece na lista de associações do teclado, no Visual Studio, clique em Opções no menu Ferramentas.
No painel esquerdo da caixa de diálogo Opções, expanda a pasta Ambiente e selecione Teclado.
Certifique-se de que o nome do arquivo .vsk que você renomeou anteriormente apareça na lista de Aplicar o seguinte esquema adicional de mapeamento de teclado.
Antes de executar o exemplo de suplemento, verifique se as associações do teclado estão definidas como (Padrão). Você pode fazer isso clicando em Redefinir no painel Teclado da caixa de diálogo Opções.
Na etapa de prop.Value = "< Filename.vsk>" de exemplo do suplemento, substitua <Filename.vsk> usando o novo nome de esquema de teclado que você especificou anteriormente.
Chame a função do método de OnConnection, como descrito em Como compilar e executar os exemplos de código do modelo de objeto Automation.
Compile o suplemento e execute-o, clicando em Gerenciador de Suplementos no menu Ferramentas , selecionando o suplemento que você criou e clicando em OK.
O comando é associado a duas teclas de atalho diferentes. Pressione CTRL+SHIFT+ALT+Y ou CTRL+SHIFT+ALT+X para exibir a caixa de diálogo Novo Arquivo.
Exemplo
O exemplo a seguir substitui o atalho de teclado existente usando dois novos atalhos.
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;
}
Consulte também
Tarefas
Como associar um comando a uma única tecla de atalho
Como preservar os atalhos de teclado existentes
Conceitos
Formato dos parâmetros da propriedade Bindings