Привязка сочетаний клавиш к элементам меню
Чтобы привязать сочетание клавиш к пользовательской команде меню, просто добавьте запись в VSCT-файл пакета. В этом разделе объясняется, как сопоставить сочетание клавиш с пользовательской кнопкой, элементом меню или командой панели инструментов, а также как применить сопоставление клавиатуры в редакторе по умолчанию или ограничить его настраиваемым редактором.
Чтобы назначить сочетания клавиш существующим элементам меню Visual Studio, см. статью "Определение и настройка сочетаний клавиш".
Выбор сочетания клавиш
Многие сочетания клавиш уже используются в Visual Studio. Не следует назначать один и тот же ярлык нескольким командам, так как повторяющиеся привязки трудно обнаружить, а также может привести к непредсказуемым результатам. Поэтому рекомендуется проверить доступность ярлыка перед его назначением.
Проверка доступности сочетания клавиш
В окне "Параметры>инструментов>" выберите "Клавиатура".
Убедитесь, что для параметра "Глобальный" задано значение "Использовать новое сочетание клавиш".
В поле сочетания клавиш введите сочетание клавиш, которое вы хотите использовать.
Если ярлык уже используется в Visual Studio, ярлык, используемый в данный момент в поле, отобразит команду, которая в настоящее время вызывает ярлык.
Попробуйте использовать различные сочетания ключей, пока не найдите его, который не сопоставлен.
Примечание.
Сочетания клавиш, использующие ALT , могут открывать меню и не выполнять команду напрямую. Поэтому ярлык, используемый в данный момент полем, может быть пустым при вводе ярлыка, включающего ALT. Вы можете убедиться, что ярлык не открывает меню, закрыв диалоговое окно "Параметры" и нажимая клавиши.
В следующей процедуре предполагается, что у вас есть существующий VSPackage с помощью команды меню. Если вам нужна помощь, ознакомьтесь со сведениями о создании расширения с помощью команды меню.
Назначение сочетания клавиш команд
Откройте VSCT-файл для пакета.
Создайте пустой
<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, задайте для атрибута
editor
guidVSStd97
значение .Чтобы сделать команду доступной только в пользовательском редакторе, задайте
editor
атрибут имени пользовательского редактора, созданного шаблоном пакета Visual Studio при создании VSPackage, включающего пользовательский редактор. Чтобы найти значение имени, просмотрите<Symbols>
раздел узла<GuidSymbol>
, атрибут которогоname
заканчивается на "editorfactory
". Это имя пользовательского редактора.
Пример 1
В этом примере сочетание клавиш CTRL+ALT+C привязывается к команде с именем в пакете с именем.cmdidMyCommand
MyPackage
<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" />