Я недавно что-то сделал в VS2010 с помощью макроса, который показывает и скрывает панель «Инструменты» при переключении назад и вперед из кода в режим конструктора в представлениях asp.net MVC3. Я думаю, это можно легко адаптировать, чтобы сделать то же самое для вашей ситуации.
Это относится к файлу класса EnvironmentEvents
в VSE Macro IDE после предварительно сгенерированного содержимого.
<System.ContextStaticAttribute()> Public WithEvents CommandEvents As EnvDTE.CommandEvents
Public Sub DTEEvents_OnMacrosRuntimeReset() Handles _
DTEEvents.OnMacrosRuntimeReset
CommandEvents = DTE.Events.CommandEvents
End Sub
Private Sub DTEEvents_OnStartupComplete() Handles _
DTEEvents.OnStartupComplete
CommandEvents = DTE.Events.CommandEvents
End Sub
Public Sub CommandEvents_AfterExecute( _
ByVal Guid As String, _
ByVal ID As Integer, _
ByVal CustomIn As Object, _
ByVal CustomOut As Object) _
Handles CommandEvents.AfterExecute
If DTE.Commands.Item(Guid, ID).Name = "View.ViewDesigner" Then
DTE.ExecuteCommand("View.Toolbox")
End If
If DTE.Commands.Item(Guid, ID).Name = "View.ViewMarkup" Then
DTE.Windows.Item(Constants.vsWindowKindToolbox).Close()
End If
End Sub
Вероятно, это может быть лучше оптимизировано с использованием указателей события, а не операторов if. Он работает, когда вы используете горячие клавиши для переключения видов, а также меню видов, но не контекстного меню.