Как получить сведения о выбранном элементе в обозревателе решений с помощью vs package

Я пытаюсь создать пакет VS, в котором я добавил команду меню в контекстное меню, поэтому оно появляется, когда вы щелкаете правой кнопкой мыши элемент в проводнике решений. Теперь, щелкнув команду, я хочу показать всплывающее окно с подробной информацией об элементе, на котором вы щелкнули правой кнопкой мыши и вызвали команду.

Теперь, как я могу получить информацию о выбранном элементе? Есть ли какой-либо сервис, который я могу использовать, чтобы получить какие-либо подробности о товаре?


person niruj    schedule 02.11.2012    source источник
comment
Вы хотите показать свойства объекта клиента?   -  person nilobarp    schedule 02.11.2012


Ответы (1)


private static EnvDTE80.DTE2 GetDTE2()
    {
        return GetGlobalService(typeof(DTE)) as EnvDTE80.DTE2;
    }
private string GetSourceFilePath()
    {
        EnvDTE80.DTE2 _applicationObject = GetDTE2();
        UIHierarchy uih = _applicationObject.ToolWindows.SolutionExplorer;
        Array selectedItems = (Array)uih.SelectedItems;
        if (null != selectedItems)
        {
            foreach (UIHierarchyItem selItem in selectedItems)
            {
                ProjectItem prjItem = selItem.Object as ProjectItem;
                string filePath = prjItem.Properties.Item("FullPath").Value.ToString();
                //System.Windows.Forms.MessageBox.Show(selItem.Name + filePath);
                return filePath;
            }
        }
        return string.Empty;
    }

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

person gramcha    schedule 14.03.2013
comment
Куда добавить эти методы и откуда мы собираемся их вызывать. - person Sharad; 13.07.2017
comment
@Sharad это похоже на регистрацию обратного вызова для события. Вам необходимо связать эту функцию с данным пунктом меню. - person gramcha; 17.07.2017
comment
Это не работает для проектов, основанных на шаблоне C++. Можете ли вы предложить альтернативу? - person Bandara; 14.06.2018
comment
Извини, @Bandara. Я только что заметил ваш вопрос, и у меня больше нет окон и среды визуальной студии, чтобы попробовать вашу проблему. - person gramcha; 08.12.2019