2010-10-15 10 views
5

Ich habe derzeit ein Visual Studio-Add-in und habe ein neues Ausgabefenster erstellt, in das ich erfolgreich Text schreiben kann. Wenn das Ausgabefenster jedoch nicht geöffnet oder minimiert ist, wird es nicht geöffnet (Popup), wenn ich die Activate() -Methode für den Bereich aufruft. Irgendwelche Ideen, wie ich das erreichen kann?Wie wird das Ausgabefenster von einem Add-In angezeigt?

+1

Ich würde sagen, es ist in der Regel nicht sehr geeignet für ein Add-In zum automatischen Wechsel von Windows. Überlassen Sie es dem Benutzer. –

+0

@Hans - Es könnte in einem Fall nützlich sein, der einem Suchen ähnlich ist, wo nach der Suche das Ergebnisfenster den Fokus erhält und Sie die Aufmerksamkeit des Benutzers dort lenken möchten. Nein? – shaunmartin

+0

@Hans was, wenn sein Add-in magisch all deine Arbeit macht? –

Antwort

4

Wenn Sie Ihr Add-In mit dem Add-In-Assistenten erstellt haben, sollten Sie eine Exec() -Methode wie unten haben. Ich habe zwei Zeilen hinzugefügt, die dazu führen, dass das Ausgabefenster geöffnet wird und sichtbar wird, unabhängig davon, ob es ursprünglich geschlossen oder minimiert wurde. Ich habe das in VS2008 und VS2010 getestet.

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; 
     } 
    } 
} 
+0

Danke, war genau das, was ich brauchte. – gouldos

+0

Das war auch in einem VSPackage nützlich, also vielen Dank dafür. Es hat mich verrückt gemacht! Der Code muss geringfügig geändert werden, um _dte.Windows anstelle von _applicationObject zu verwenden. –