Freigeben über


Gewusst wie: Öffnen Sie ein Toolfenster programmgesteuert

Toolfenster werden in der Regel durch Klicken auf einen Befehl in einem Menü oder durch Drücken einer entsprechenden Tastenkombinationen geöffnet. Allerdings müssen Sie möglicherweise ein Toolfenster, wie der Befehlshandler programmgesteuert öffnen.

Um ein Toolfenster in verwalteten VSPackages zu öffnen, verwenden Sie stellt das es FindToolWindow. So fügen Sie ein Toolfenster an einem anderen VSPackage öffnen, verwenden Sie FindToolWindow. In beiden Fällen wird das Toolfenster nach Bedarf erstellt.

Im folgenden Code wird im Beispiel C# Reference.ToolWindow übernommen.

So öffnen Sie programmgesteuert ein Toolfenster

  1. Erstellen Sie den Tools, die fensterbereich Frame und VSPackages, die sie implementiert. Weitere Informationen finden Sie unter Gewusst wie: Erstellen Sie ein Toolfenster erstellen.

  2. Registrieren Sie das Toolfenster mit Visual Studio , indem Sie ProvideToolWindowAttribute zu VSPackages hinzufügen, die er bereitstellt.

    <PackageRegistration(UseManagedResourcesOnly:=True), _
    InstalledProductRegistration("#110", "#112", "1.0", IconResourceID:=400), _
    ProvideMenuResource(1000, 1), _
    ProvideToolWindow(GetType(MyToolWindow), Style:=VsDockStyle.Tabbed, Window:="3ae79031-e1bc-11d0-8f78-00a0c9110057"), _
    DefaultRegistryRoot("Software\Microsoft\VisualStudio\8.0Exp"), _
    Guid("01069CDD-95CE-4620-AC21-DDFF6C57F012")> _
    Public NotInheritable Class PackageToolWindow
        Inherits Package
    
    [ProvideToolWindow(typeof(MyToolWindow), Style = VsDockStyle.Tabbed, Window = "3ae79031-e1bc-11d0-8f78-00a0c9110057")]
    [ProvideMenuResource(1000, 1)]
    [DefaultRegistryRoot(@"Software\Microsoft\VisualStudio\8.0Exp")]
    [PackageRegistration(UseManagedResourcesOnly = true)]
    [Guid("01069CDD-95CE-4620-AC21-DDFF6C57F012")]
    public sealed class PackageToolWindow : Package
    

    Dieses registriert das Toolfenster geöffnet werden soll, PersistedWindowPane unter How to Projektmappen-Explorerangedockt. Weitere Informationen finden Sie unter Gewusst wie: Registriert ein Toolfenster.

  3. Verwendung FindToolWindow , den Tools fensterbereich zu suchen oder zu erstellen, wenn sie sie nicht bereits vorhanden ist.

    ' Get the (only) instance of this tool window. 
    ' The last flag is set to true so that if the tool window does not exists it will be created. 
    Dim window As ToolWindowPane = Me.FindToolWindow(GetType(MyToolWindow), 0, True)
    If (window Is Nothing) Or (window.Frame Is Nothing) Then 
        Throw New NotSupportedException(Resources.CanNotCreateWindow)
    End If
    
    // Get the (only) instance of this tool window. 
    // The last flag is set to true so that if the tool window does not exists it will be created.
    ToolWindowPane window = this.FindToolWindow(typeof(MyToolWindow), 0, true);
    if ((window == null) || (window.Frame == null))
    {
        throw new NotSupportedException(Resources.CanNotCreateWindow);
    }
    
  4. Rufen Sie den vom Tool fensterrahmen Tool fensterbereich ab.

    Dim windowFrame As IVsWindowFrame = TryCast(window.Frame, IVsWindowFrame)
    
    IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;
    
  5. Zeigt das Toolfenster an.

    ErrorHandler.ThrowOnFailure(windowFrame.Show())
    
    ErrorHandler.ThrowOnFailure(windowFrame.Show());
    

Siehe auch

Konzepte

VSPackage-Grundlagen