Como: Preserve existing comando chave ligações
Normalmente, quando você altera o chave ligação para um comando existente chave ligações são perdidas.O exemplo a seguir, no entanto, demonstra como BIND dois novos chave combinações para um comando e preservar seus já existentes.
Se você deseja ver uma lista corrente dos comandos, execute o exemplo ListKeyBindings conforme apresentada no tópico Como: Exibir ligações de chave existente.
Observação: |
---|
As caixas de diálogo e comandos de menu demonstradas podem ser diferentes daqueles descritas na Ajuda, dependendo das configurações ativas ou configurações de edição.Esses procedimentos foram desenvolvidos com o Geral Development Settings ativo.Para alterar as configurações, escolher Import and ExportSettings on the Tools menu.Para obter mais informações, consulte Configurações do Visual Studio. |
Para adicionar novo atalho chave s e preservar comando existente chave ligações
Use o Assistente do Visual Studio suplemento para criar um novo Add-in.Nomeie o projeto e clicar OK para iniciar o assistente.
Para obter mais informações sobre como usar o Assistente do Visual Studio suplemento, see Como: Criar um suplemento.
Sobre o selecionar uma linguagem de programação , selecionar um dos Criar Suplemento usando translation from VPE for Csharp Visual para executar o Visual C# exemplo abaixo, ou Criar um suplemento usando Visual Basic para executar o Visual Basic exemplo.
Colar a função de exemplo abaixo na classe de conectar o código gerado pelo Assistente do Visual Studio suplemento.
Para criar uma cópia do padrão as configurações de teclado, navegar para c:\Arquivos de Programas\Microsoft Visual Studio n:\programa.
clicar com o botão direito do mouse em um dos arquivos vsk e selecionar Cópia no menu de atalho.
Cole a cópia na mesma pasta.
A cópia é chamada de "Cópia de < nome de arquivo vsk >".
Renomeie o arquivo copiado.
Para verificar se o novo arquivo vsk aparece na lista de ligações de teclado, em Visual Studio clicar Opções on the Ferramentas menu.
No painel esquerdo do Opções diálogo caixa, expandir o Ambiente pasta e selecionar Teclado.
Verifique se o nome do vsk-arquivo especificado na etapa 7 aparece no Aplicar o esquema de mapeamento de teclado adicionais seguintesmenu suspenso de .
Antes de executar o suplemento de exemplo, certifique-se de que as ligações de teclado estão definidas como (Padrão).Você pode fazer isso clicando em reiniciar in the Teclado painel do Opções caixa de diálogo.
Substitua o <Filename.vsk> com o novo nome do esquema de teclado que você especificou na etapa 7 na prop.Value = "< Filename.vsk>" etapa do exemplo suplemento.
Chamar a função a partir de OnConnection método conforme descrito em Como: Compilar e executar os exemplos de códigos automação objeto modelo.
Crie o suplemento.
Para executar o suplemento, clicar Gerenciador de suplemento on the Ferramentas menu, selecionar o suplemento que você criou e clicar OK.
The File.NewFile comando está limite ao novo chave ligações (CTRL + ALT + deslocar + Y e CTRL + ALT + deslocar + U), bem sistema autônomo o original chave ligações.
Exemplo
O suplemento do exemplo a seguir demonstra como BIND duas novas combinações de teclas em um comando, preservando seu já existentes.
Sub PreserveBindings()
' Adds two new key bindings while preserving the existing ones.
Dim cmds As Commands
Dim cmd As Command
Dim props As EnvDTE.Properties = DTE.Properties("Environment", _
"Keyboard")
Dim prop As EnvDTE.Property
Dim bindings() As Object
Dim bindingNumber As Integer
' Set references to the Commands collection and the File.NewFile
' command.
cmds = DTE.Commands
cmd = cmds.Item("File.NewFile")
' Make a writeable copy of the default keymapping scheme.
prop = props.Item("SchemeName")
prop.Value = "<FileName.vsk>"
' Retrieve the current bindings for the command.
bindings = cmd.Bindings
' Get the number of bindings for the command.
bindingNumber = bindings.Length
' Add two more elements to the array to accomodate two
' new commands.
ReDim Preserve bindings(bindingNumber + 1)
' Add the new bindings to the existing ones in the array.
bindings(bindingNumber) = "Global::CTRL+ALT+SHIFT+Y"
bindings(bindingNumber + 1) = "Global::CTRL+ALT+SHIFT+U"
' Assign the contents of the bindings array to the Bindings
' property.
cmd.Bindings = bindings
End Sub
public void OnConnection(object application,
Extensibility.ext_ConnectMode connectMode, object addInInst, ref
System.Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
// Pass the applicationObject member variable to the code example.
PreserveBindings((_applicationObject);
}
// Add-in example for TextSelection.FindPattern.
// Also shows usage of these methods and properties:
// TextSelection.SelectLine
public void PreserveBindings( DTE dte )
{
// Adds two new key bindings while preserving the existing ones.
Commands cmds = null;
Command cmd = null;
EnvDTE.Properties props = dte.get_Properties( "Environment",
"Keyboard");
EnvDTE.Property prop = null;
Object[] bindings = null;
int bindingNumber = 0;
// Set references to the Commands collection and the File.NewFile
// command.
cmds = dte.Commands;
cmd = cmds.Item( "File.NewFile", -1 );
// Make a writeable copy of the default keymapping scheme.
prop = props.Item( "SchemeName" );
prop.Value = "<FileName.vsk>";
// Retrieve the current bindings for the command.
bindings = ( ( System.Object[] )( cmd.Bindings ) );
// Get the number of bindings for the command.
bindingNumber = bindings.Length;
// Add two more elements to the array to accomodate two
// new commands.
// Create temp variable for copying values.
// Arrays are zero-based in C#.
object[] temp = new object[ bindingNumber + 2 ];
System.Array.Copy( bindings, temp, Math.Min( bindings.Length,
temp.Length ) );
bindings = temp;
// Add the new bindings to the existing ones in the array.
bindings[ bindingNumber ] = "Global::CTRL+ALT+SHIFT+Y";
bindings[ bindingNumber+1 ] = "Global::CTRL+ALT+SHIFT+U";
// Assign the contents of the bindings array to the Bindings
// property.
cmd.Bindings = bindings;
}
Consulte também
Tarefas
Como: BIND um comando a uma única tecla de atalho
Como: BIND um comando para várias combinações de teclas de atalho
Conceitos
Vinculações de propriedade parâmetro Format