5

I currently have a visual studio add-in and have created a new output window pane which I can write text to successfully. However, when the output window is not open or it is minimised then it doesn't open (popup) when I call the Activate() method on the pane. Any ideas how I can achieve this?

gouldos
  • 1,015
  • 1
  • 16
  • 30
  • 1
    I'd say it isn't typically very appropriate for an add-in to automatically switch windows. Leave it up to the user. – Hans Passant Oct 15 '10 at 16:35
  • @Hans - It might be useful in a case similar to a Find where, after the search, the results window is given focus and you want to direct the user's attention there. No? – shaunmartin Oct 15 '10 at 16:41
  • @Hans what if his add-in magically does all your work? – Yuriy Faktorovich Oct 15 '10 at 16:41
  • 1
    Its for displaying the results from a build server and so I would think it would be appreciated if the user was shown the results. Similar to the Build results which are displayed when a local build is run in VS. I still expect the user to develop their solution themselves ;o) – gouldos Oct 15 '10 at 17:23

1 Answers1

4

If you created your Add-in using the Add-in wizard you should have an Exec() method like below. I have added two lines that cause the Output window to open and become visible regardless whether it was originally closed or minimized. I tested this in VS2008 and VS2010.

public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled)
{
    handled = false;
    if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
    {
        if(commandName == "AddinTest.Connect.AddinTest")
        {
            // Find the output window.
            Window outputWindow = _applicationObject.Windows.Item(Constants.vsWindowKindOutput);
            // Show the window. (You might want to make sure outputWindow is not null here...)
            outputWindow.Visible = true;

            handled = true;
            return;
        }
    }
} 
shaunmartin
  • 3,849
  • 2
  • 25
  • 26
  • This was useful in a VSPackage as well, so thanks for that. It was driving me crazy! The code needs to be modified slightly, to use _dte.Windows instead of _applicationObject. – Yann Duran Dec 30 '12 at 10:59