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


Привязка сочетаний клавиш к элементам меню

Чтобы привязать сочетание клавиш к пользовательской команде меню, просто добавьте запись в VSCT-файл пакета. В этом разделе объясняется, как сопоставить сочетание клавиш с пользовательской кнопкой, элементом меню или командой панели инструментов, а также как применить сопоставление клавиатуры в редакторе по умолчанию или ограничить его настраиваемым редактором.

Чтобы назначить сочетания клавиш существующим элементам меню Visual Studio, см. статью "Определение и настройка сочетаний клавиш".

Выбор сочетания клавиш

Многие сочетания клавиш уже используются в Visual Studio. Не следует назначать один и тот же ярлык нескольким командам, так как повторяющиеся привязки трудно обнаружить, а также может привести к непредсказуемым результатам. Поэтому рекомендуется проверить доступность ярлыка перед его назначением.

Проверка доступности сочетания клавиш

  1. В окне "Параметры>инструментов>" выберите "Клавиатура".

  2. Убедитесь, что для параметра "Глобальный" задано значение "Использовать новое сочетание клавиш".

  3. В поле сочетания клавиш введите сочетание клавиш, которое вы хотите использовать.

    Если ярлык уже используется в Visual Studio, ярлык, используемый в данный момент в поле, отобразит команду, которая в настоящее время вызывает ярлык.

  4. Попробуйте использовать различные сочетания ключей, пока не найдите его, который не сопоставлен.

    Примечание.

    Сочетания клавиш, использующие ALT , могут открывать меню и не выполнять команду напрямую. Поэтому ярлык, используемый в данный момент полем, может быть пустым при вводе ярлыка, включающего ALT. Вы можете убедиться, что ярлык не открывает меню, закрыв диалоговое окно "Параметры" и нажимая клавиши.

    В следующей процедуре предполагается, что у вас есть существующий VSPackage с помощью команды меню. Если вам нужна помощь, ознакомьтесь со сведениями о создании расширения с помощью команды меню.

Назначение сочетания клавиш команд

  1. Откройте VSCT-файл для пакета.

  2. Создайте пустой <KeyBindings> раздел после того, <Commands> как он еще не присутствует.

    Предупреждение

    Дополнительные сведения о привязках ключей см. в разделе "Привязка ключей".

    <KeyBindings> В разделе создайте <KeyBinding> запись.

    guid Задайте для этих и id атрибутов команду, которую требуется вызвать.

    Задайте для атрибута mod1значение Control, ALT или SHIFT.

    Раздел KeyBindings должен выглядеть примерно так:

    <KeyBindings>
        <KeyBinding guid="<name of command set>" id="<name of command id>"
            editor="guidVSStd97" key1="1" mod1="CONTROL"/>
    </KeyBindings>
    
    

    Если для сочетания клавиш требуется более двух клавиш, задайте mod2 их и key2 атрибуты.

    В большинстве случаев shift не следует использовать без второго модификатора, так как нажатие клавиш уже приводит к тому, что большинство буквенно-цифровых ключей вводят прописную букву или символ.

    Коды виртуальных ключей позволяют получить доступ к специальным ключам, которые не связаны с ними символами, например ключами функций и ключом Backspace . Дополнительные сведения см. в разделе "Коды виртуальных ключей".

    Чтобы сделать команду доступной в редакторе Visual Studio, задайте для атрибута editorguidVSStd97значение .

    Чтобы сделать команду доступной только в пользовательском редакторе, задайте editor атрибут имени пользовательского редактора, созданного шаблоном пакета Visual Studio при создании VSPackage, включающего пользовательский редактор. Чтобы найти значение имени, просмотрите <Symbols> раздел узла <GuidSymbol> , атрибут которого name заканчивается на "editorfactory". Это имя пользовательского редактора.

Пример 1

В этом примере сочетание клавиш CTRL+ALT+C привязывается к команде с именем в пакете с именем.cmdidMyCommandMyPackage

<CommandTable>
. . .
<Commands>
. . .
</Commands>
<KeyBindings>
  <KeyBinding guid="guidMyPackageCmdSet" id="cmdidMyCommand"
      key1="C" mod1="CONTROL" mod2="ALT" editor="guidVSStd97" />
</KeyBindings>
. . .
</CommandTable>

Пример 2

В этом примере сочетание клавиш CTRL+B привязывается к команде с именем cmdidBold проекта.TestEditor Команда доступна только в пользовательском редакторе, а не в других редакторах.

<KeyBinding guid="guidVSStd97" id="cmdidBold" editor="guidTestEditorEditorFactory" key1="B" mod1="Control" />