This one comes from Austin out of our mailbag.  Thanks - Josh


I got tired of using the F7, Shift-F7 key shortcuts for toggling the Design and Source code windows.  So I wrote this little macro.

It works a little differently for ASP.NET files.  When toggling to the Design window the macro will open either in Design or HTML mode depending on the users setting.  Maybe someone else will find this macro usefull.

Imports EnvDTE

Imports System.Diagnostics

Imports System.ComponentModel.Design

 

Public Module ToggleWindows

    Sub ToggleDesignAndCodeWindows()

        If (((TypeOf DTE.ActiveWindow.Object Is IDesignerHost) OrElse (TypeOf DTE.ActiveWindow.Object Is HTMLWindow)) AndAlso (DTE.Commands.Item("View.ViewCode").IsAvailable)) Then

            DTE.ExecuteCommand("View.ViewCode")

        Else

            Dim projItem As ProjectItem

            Dim activeDocFullName As String = DTE.ActiveDocument.FullName

            Dim formFullName As String = activeDocFullName.Substring(0, activeDocFullName.LastIndexOf("."))

 

            projItem = DTE.Solution.FindProjectItem(formFullName)

 

            If (Not projItem Is Nothing) Then

                Try

                    projItem.Open(Constants.vsViewKindPrimary).Activate()

                Catch e As System.NullReferenceException

                    ' Do nothing.  Needed for asmx and ascx pages.

                End Try

            Else

                If DTE.Commands.Item("View.ViewDesigner").IsAvailable Then

                    DTE.ExecuteCommand("View.ViewDesigner")

                Else

                    Beep()

                End If

            End If

        End If

    End Sub

End Module

 


Check out these instructions for more information on using macros in the ide.