Я пишу небольшое расширение Visual Studio для VS2017 на С# и пытаюсь сделать что-то довольно простое: если я нажму кнопку, я хочу повторно открыть (сделать активным) определенный документ.
У меня есть RunningDocumentInfo
из RunningDocumentTable
для этого документа, поэтому у меня есть его прозвище, иерархия и все такое прочее. В документах SDK я нашел только то, что обновление можно выполнить с помощью IVsUIShellOpenDocument.IsDocumentOpen
и флага IDO_ActivateIfOpen
. Это звучит немного неуместно, так как я уже точно знаю, что документ открыт, но я бы согласился, если он работает. Но как получить подходящий экземпляр, реализующий IVsUIShellOpenDocument
? Или есть, случайно, более простой способ, которого я просто не нашел?
EnvDTE.DTE dte; dte = (EnvDTE.DTE)Package.GetGlobalService( typeof( EnvDTE.DTE ) ); dte.ItemOperations.OpenFile( info.Moniker );
Все еще странно открывать документ, который, как вы знаете, уже открыт, поэтому, если есть более простой способ просто активировать его, я был бы более чем счастлив, но пока он работает трюк я счастлив ^^ - person Svensational   schedule 18.08.2019