Как убрать открыть в visual studio из контекстного меню
Перейти к содержимому

Как убрать открыть в visual studio из контекстного меню

  • автор:

Добавление контекстного меню в окне инструментов

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

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

Окно инструментов состоит из пользовательского элемента управления WPF в пользовательском классе окна инструментов, наследуемом от ToolWindowPane.

В этом пошаговом руководстве показано, как создать контекстное меню в виде меню Visual Studio, объявив элементы меню в VSCT-файле, а затем с помощью управляемой платформы пакетов для реализации их в классе, определяющем окно инструментов. Этот подход упрощает доступ к командам Visual Studio, элементам пользовательского интерфейса и объектной модели автоматизации.

Кроме того, если контекстное меню не будет получать доступ к функциям Visual Studio, можно использовать ContextMenu свойство элемента XAML в пользовательском элементе управления. Дополнительные сведения см. в разделе ContextMenu.

Необходимые компоненты

Начиная с Visual Studio 2015, пакет SDK Visual Studio не устанавливается из центра загрузки. Она включена в качестве необязательной функции в настройке Visual Studio. Пакет SDK для VS можно установить и позже. Дополнительные сведения: Установка пакета SDK для Visual Studio.

Создание пакета контекстного меню окна средства

  1. Создайте проект VSIX с именем TWShortcutMenu и добавьте в него шаблон окна инструментов с именем ShortcutMenu . Дополнительные сведения о создании окна инструментов см. в статье «Создание расширения с помощью окна инструментов».

Указание контекстного меню

Контекстное меню, например в этом пошаговом руководстве, позволяет пользователю выбрать из списка цветов, которые используются для заполнения фона окна инструмента.

    В Контекстном меню.vsct найдите элемент GuidSymbol с именем guidShortcutMenuPackageCmdSet и объявите контекстное меню, группу контекстного меню и параметры меню. Теперь элемент GuidSymbol должен выглядеть следующим образом:

 // your GUID here       
   Color change ColorChange    
       
public const string guidShortcutMenuPackageCmdSet = "00000000-0000-0000-0000-00000000"; // your GUID will differ public const int ColorMenu = 0x1000; public const int cmdidRed = 0x102; public const int cmdidYellow = 0x103; public const int cmdidBlue = 0x104; 

Реализация контекстного меню

В этом разделе реализовано контекстное меню и его команды.

  1. В ЯрлыкМену.cs окно инструментов может получить службу команд меню, но элемент управления, содержащий его, не может. Ниже показано, как сделать командную службу меню доступной для пользовательского элемента управления.
  2. В ShortcutMenu.cs добавьте следующие директивы using:

using Microsoft.VisualStudio.Shell; using System.ComponentModel.Design; 
protected override void Initialize()
public ShortcutMenu() : base(null)
public ShortcutMenuControl(OleMenuCommandService service) < this.InitializeComponent(); commandService = service; if (null !=commandService) < // Create an alias for the command set guid. Guid guid = new Guid(ShortcutMenuCommand.guidShortcutMenuPackageCmdSet); // Create the command IDs. var red = new CommandID(guid, ShortcutMenuCommand.cmdidRed); var yellow = new CommandID(guid, ShortcutMenuCommand.cmdidYellow); var blue = new CommandID(guid, ShortcutMenuCommand.cmdidBlue); // Add a command for each command ID. commandService.AddCommand(new MenuCommand(ChangeColor, red)); commandService.AddCommand(new MenuCommand(ChangeColor, yellow)); commandService.AddCommand(new MenuCommand(ChangeColor, blue)); >> 
  ShortcutMenu    
private void MyToolWindow_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
using Microsoft.VisualStudio.Shell; using System.ComponentModel.Design; using System; using System.Windows.Input; using System.Windows.Media; 
private void MyToolWindow_MouseRightButtonDown(object sender, MouseButtonEventArgs e) < if (null != commandService) < CommandID menuID = new CommandID( new Guid(ShortcutMenuCommand.guidShortcutMenuPackageCmdSet), ShortcutMenuCommand.ColorMenu); Point p = this.PointToScreen(e.GetPosition(this)); commandService.ShowContextMenu(menuID, (int)p.X, (int)p.Y); >> 
private void ChangeColor(object sender, EventArgs e) < var mc = sender as MenuCommand; switch (mc.CommandID.ID) < case ShortcutMenuCommand.cmdidRed: MyToolWindow.Background = Brushes.Red; break; case ShortcutMenuCommand.cmdidYellow: MyToolWindow.Background = Brushes.Yellow; break; case ShortcutMenuCommand.cmdidBlue: MyToolWindow.Background = Brushes.Blue; break; >> 

Проверка возможностей окна инструментов

  1. Выполните сборку решения и запустите отладку. Откроется экспериментальный экземпляр.
  2. В экспериментальном экземпляре нажмите кнопку «Вид/ Другие окна«, а затем нажмите кнопку «ЯрлыкМеню«. Это должно отобразить окно средства.
  3. Щелкните правой кнопкой мыши текст окна инструментов. Контекстное меню со списком цветов должно отображаться.
  4. Щелкните цвет в контекстном меню. Цвет фона окна инструментов должен быть изменен на выбранный цвет.

См. также

  • Команды, меню и панели инструментов
  • Использование и предоставление служб

Практическое руководство. Добавление и удаление элементов меню с помощью компонента ContextMenu в Windows Forms

Объясняется, как добавлять и удалять элементы контекстного меню в Windows Forms.

Компонент ContextMenu в Windows Forms предоставляет меню часто используемых команд, относящихся к выбранному объекту. Элементы можно добавлять в контекстное меню, добавляя объекты MenuItem в коллекцию MenuItems.

Элементы можно удалять из контекстного меню окончательно. Однако во время выполнения может быть удобнее скрывать или отключать их.

Хотя элементы управления MenuStrip и ContextMenuStrip заменяют элементы управления MainMenu и ContextMenu предыдущих версий и расширяют их функциональные возможности, элементы управления MainMenu и ContextMenu сохраняются для обратной совместимости и возможного применения в будущем.

Удаление элементов из контекстного меню

  1. Чтобы удалить определенный элемент меню, используйте метод Remove или RemoveAt коллекции MenuItems компонента ContextMenu.
' Removes the first item in the shortcut menu. ContextMenu1.MenuItems.RemoveAt(0) ' Removes a particular object from the shortcut menu. ContextMenu1.MenuItems.Remove(mnuItemNew) 
// Removes the first item in the shortcut menu. contextMenu1.MenuItems.RemoveAt(0); // Removes a particular object from the shortcut menu. contextMenu1.MenuItems.Remove(mnuItemNew); 
// Removes the first item in the shortcut menu. contextMenu1->MenuItems->RemoveAt(0); // Removes a particular object from the shortcut menu. contextMenu1->MenuItems->Remove(mnuItemNew); 
ContextMenu1.MenuItems.Clear() 
contextMenu1.MenuItems.Clear(); 
contextMenu1->MenuItems->Clear(); 

См. также

  • ContextMenu
  • Компонент ContextMenu
  • Общие сведения об элементе управления ContextMenu

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

.NET Desktop feedback

The .NET Desktop documentation is open source. Provide feedback here.

Обратная связь

Отправить и просмотреть отзыв по

Как добавить visual studio code в контекстное меню?

Подскажите пожалуйста, как добавить пункты visual studio code в контекстное меню? Чтобы по клику правой кнопки мыши можно было открыть файл или проект. Искал в настройках (старательно искал) — безуспешно. Заранее спасибо.

  • Вопрос задан более трёх лет назад
  • 22952 просмотра

1 комментарий

Простой 1 комментарий

honor8

https://github.com/Microsoft/vscode/issues/63714
В пути раздела command не должны использоваться переменные среды.

Решения вопроса 1

mashletov

Math.random()
Вручную значит
https://remontka.pro/add-program-context-menu/
Ответ написан более трёх лет назад
Нравится 2 1 комментарий
hajdoz43 @hajdoz43 Автор вопроса
Ответы на вопрос 5

Mo_Ginger

клацаю по кнопкам

Понимаю, что для автора уже не актуально, но может быть кому-то ещё поможет.

Создайте файл vsCodeOpenFolder.reg с этим контентом (если вы не выбрали путь установки по умолчанию, вам необходимо настроить пути в этом файле):

Windows Registry Editor Version 5.00 ; Open files [HKEY_CLASSES_ROOT\*\shell\Open with VS Code] @="Edit with VS Code" "Icon"="C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe,0" [HKEY_CLASSES_ROOT\*\shell\Open with VS Code\command] @="\"C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe\" \"%1\"" ; This will make it appear when you right click ON a folder ; The "Icon" line can be removed if you don't want the icon to appear [HKEY_CLASSES_ROOT\Directory\shell\vscode] @="Open Folder as VS Code Project" "Icon"="\"C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe\",0" [HKEY_CLASSES_ROOT\Directory\shell\vscode\command] @="\"C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe\" \"%1\"" ; This will make it appear when you right click INSIDE a folder ; The "Icon" line can be removed if you don't want the icon to appear [HKEY_CLASSES_ROOT\Directory\Background\shell\vscode] @="Open Folder as VS Code Project" "Icon"="\"C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe\",0" [HKEY_CLASSES_ROOT\Directory\Background\shell\vscode\command] @="\"C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe\" \"%V\""

Дважды щелкните его, чтобы создать записи в реестре
Если «Открыть с кодом» не отображается в контекстном меню «Проводник», необходимо перезагрузить систему.
Если вы используете 64-битную или инсайдерскую версию VS Code, измените путь соответственно

Как убрать вкладку «Открыть в Visual Studio» из контекстного меню?

Windows 10 Manager — утилита ContextMenuManager,
можно через утилиту удалить.

Ещё есть утилита shexview,но в связи с последними изменениями в 10ке 1803 ещё хз как она себя поведёт)))
Я к примеру отказался от обновления 1709 на 1803,у меня работает.

Высший разум (127008) 5 лет назад
работает на 1803
Александр ГригорьевУченик (90) 5 лет назад
А ты же профессиональный компьютерщик?

Галерный Искусственный Интеллект (111626) До «профессиональный компьютерщик» мне ДАЛЕКО, но пожалуй можно выразиться типа ПОЛУпрофессиональный компьютерщик)))

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *