Freigeben über


Gewusst wie: Erstellen Sie ein Mehrfachinstanzes Toolfenster erstellen

Sie können Programm ein Toolfenster, sodass mehrere Instanzen von ihm gleichzeitig geöffnet werden können. Standardmäßig können Toolfenster nur eine offene Instanz verfügen.

Indem Sie ein Mehrfachinstanzes Toolfenster verwenden, können Sie mehrere verwandte Informationsquellen at the Same Time. Beispielsweise könnten Sie ein Mehrkanal- TextBox Steuerelement in ein Mehrfachinstanzes Toolfenster einfügen, sodass einige Codeausschnitte während einer gleichzeitigen Programmierung Sitzung verfügbar sind. Außerdem könnten Sie z. B. ein DataGrid Steuerelement und ein Dropdown-Listenfeld in ein Mehrfachinstanzes platzieren, sodass einige Toolfenster gleichzeitig verwenden Echtzeit nachverfolgt werden können.

So erstellen Sie ein Mehrfachinstanzes Toolfenster

  1. Erstellen Sie ein Toolfenster, indem Sie die Visual Studio-Paket-Vorlage verwenden. Weitere Informationen finden Sie unter Gewusst wie: Erstellen Sie ein Toolfenster erstellen.

  2. Öffnen Sie die Paketdatei (ProjectNamePackage.cs oder ProjectNamePackage.vb).

  3. Derzeit oberhalb der Klassendefinition, suchen Sie das ProvideToolWindow Attribut und der MultiInstances=true Parameter, wie im Folgenden Beispiel gezeigt.

    [ProvideToolWindow(typeof(MyToolWindow), MultiInstances = true)]
    

    Dies erstellt einen Registrierungseintrag, der mehrere Instanzen des Toolfensters vorhanden sein kann.

  4. Rufen Sie die FindToolWindow Methode auf, und legen Sie create - Flag auf false fest, sodass sie von Toolfenstern vorhandene Instanzen durchlaufen, bis id verfügbar.

  5. Um eine Toolfenster Objektinstanz zu erstellen, rufen Sie die FindToolWindow Methode auf, und legen Sie id zu einem verfügbaren Wert, und sein create - Flag auf truefest.

    Standardmäßig ist der Wert des id Parameters der Methode FindToolWindow0. Dadurch wird ein Tool mit einzelner Instanz Fenster erstellt. Damit mehrere Instanzen gehostet werden kann, muss jede Instanz über eindeutige idhaben.

  6. Rufen Sie die ShowIVsWindowFrame Methode für das Objekt auf, das von der Frame Toolfenster - Eigenschaft der Instanz zurückgegeben wurde.

    Dadurch wird das Toolfenster an.

Beispiel

Standardmäßig unterstützt die ShowToolWindow Methode, die von der Vorlage erstellten Pakets ein Tool mit einzelner Instanz Fenster. Im Folgenden Beispiel wird gezeigt, wie die ShowToolWindow Methode ändert, um mehrere Instanzen zu unterstützen.

private void ShowToolWindow(object sender, EventArgs e)
{
    for (int i = 0; ; i++)
    {
        // Find existing windows. 
        var currentWindow = this.FindToolWindow(
            typeof(MyToolWindow), i, false);
        if (currentWindow == null)
        {
            // Create the window with the first free ID. 
            var window = (ToolWindowPane)this.CreateToolWindow(typeof(MyToolWindow), i);

            if ((null == window) || (null == window.Frame))
            {
                throw new NotSupportedException(
                    Resources.CanNotCreateWindow);
            }
            IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;

            // Display the window.
            Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(
                windowFrame.Show());
            break;
        }
    }
}

Siehe auch

Aufgaben

Gewusst wie: Öffnen Sie ein Toolfenster programmgesteuert

Referenz

FindToolWindow

Weitere Ressourcen

Toolfenster