Поделиться через


Практическое руководство. Привязка команды к нескольким сочетаниям клавиш

Надстройки Visual Studio выступан сопоставления в Visual Studio 2013. Необходимо обновить для надстройки с расширениями VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.

К одной команде можно привязать несколько сочетаний клавиш. Например, это может потребоваться в том случае, если пользователи, работающие над проектом, предпочитают для выполнения одной и той же команды использовать разные сочетания клавиш. Привязка выполняется путем передачи сочетаний клавиш в виде строковых элементов в массиве типа Object.

Примечание

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Эти элементы определяются используемым выпуском Visual Studio и его параметрами.Для получения дополнительной информации см. Настройка параметров разработки в Visual Studio.

Привязка команды к нескольким сочетаниям клавиш

  1. Используйте Мастер надстроек Visual Studio для создания новой надстройки. Назовите проект и нажмите ОК для запуска мастера.

    Дополнительные сведения об использовании Мастера надстроек Visual Studio см. в разделе Практическое руководство. Создание надстройки.

  2. На странице Выбрать язык программирования выберите Создать надстройку, используя Visual C# для запуска примера в этом разделе Visual C# или Создать надстройку, используя Visual Basic для запуска примера Visual Basic.

  3. Вставьте следующий пример функции в класс Connect кода, созданного Мастером надстроек Visual Studio.

  4. Чтобы создать копию параметров клавиатуры по умолчанию, перейдите в каталог. \Program Files\Microsoft Visual Studio 10\Common7\IDE\. Щелкните правой кнопкой мыши один из файлов VSK и выберите команду Копировать. Вставьте копию в той же папке. Копия называется копированием « .vsk file name».

  5. Переименуйте копию файла.

  6. Чтобы удостовериться в том, что VSK-файл появился в списке привязок к клавиатуре, откройте Visual Studio и выберите в меню Сервис команду Параметры.

  7. В левой области диалогового окна Параметры разверните папку Среда и выберите Клавиатура.

    Убедитесь в том, что имя переименованного ранее VSK-файла появилось в списке Применить следующую дополнительную схему назначений клавиш.

  8. Перед запуском примера надстройки убедитесь, что привязки к клавиатуре имеют значение**(По умолчанию)**. Для этого нажмите кнопку Сброс на панели Клавиатура в диалоговом окне Параметры.

  9. На шаге prop.Value = "< Filename.vsk>" примера надстройки замените <Filename.vsk> именем новой схемы клавиатуры, указанной ранее.

  10. Вызовите функцию из метода OnConnection, как описано в разделе Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации.

  11. Выполните построение надстройки, а затем запустите ее. Для этого откройте меню Сервис, выберите команду Диспетчер надстроек, выберите созданную надстройку и нажмите кнопку ОК.

    Команда привязана к двум разным сочетаниям клавиш. Диалоговое окно Создать файл можно открыть сочетанием клавиш CTRL+SHIFT+ALT+Y или CTRL+SHIFT+ALT+X.

Пример

В следующем примере существующее сочетание клавиш заменяется двумя новыми.

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

См. также

Задачи

Практическое руководство. Привязка команды к одному сочетанию клавиш

Практическое руководство. Сохранение существующих сочетаний клавиш

Основные понятия

Формат параметров свойства привязки

Другие ресурсы

Привязка команды управления надстройкой к клавишам