Freigeben über


Windows2.CreateToolWindow2-Methode

Erstellt ein neues Toolfenster und hostet darin ein benutzerdefiniertes .NET-Steuerelement.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Syntax

'Declaration
Function CreateToolWindow2 ( _
    Addin As AddIn, _
    Assembly As String, _
    Class As String, _
    Caption As String, _
    GuidPosition As String, _
    <OutAttribute> ByRef ControlObject As Object _
) As Window
Window CreateToolWindow2(
    AddIn Addin,
    string Assembly,
    string Class,
    string Caption,
    string GuidPosition,
    out Object ControlObject
)
Window^ CreateToolWindow2(
    AddIn^ Addin, 
    String^ Assembly, 
    String^ Class, 
    String^ Caption, 
    String^ GuidPosition, 
    [InAttribute] [OutAttribute] Object^% ControlObject
)
abstract CreateToolWindow2 : 
        Addin:AddIn * 
        Assembly:string * 
        Class:string * 
        Caption:string * 
        GuidPosition:string * 
        ControlObject:Object byref -> Window
function CreateToolWindow2(
    Addin : AddIn, 
    Assembly : String, 
    Class : String, 
    Caption : String, 
    GuidPosition : String, 
    ControlObject : Object
) : Window

Parameter

  • Addin
    Typ: AddIn

    Eine Instanz des Add-Ins, das das Toolfenster erstellt.

  • Assembly
    Typ: String

    Der vollständige Name oder der Dateipfad der Assembly, die das Benutzersteuerelement enthält.

  • Class
    Typ: String

    Der vollständige Name der Klasse, die das Benutzersteuerelement implementiert.

  • Caption
    Typ: String

    Die im neuen Toolfenster anzuzeigende Beschriftung.

  • GuidPosition
    Typ: String

    Ein eindeutiger Bezeichner für das neue Fenster. (Dieser kann verwendet werden, um das Fenster in der Windows-Auflistung zu suchen.)

  • ControlObject
    Typ: Object%

    Das Benutzersteuerelement, das im neuen Toolfenster gehostet werden soll.

Rückgabewert

Typ: Window
Ein Window-Objekt.

Hinweise

Bevor Sie CreateToolWindow2 aufrufen, um ein neues Toolfenster zu erstellen, sollten Sie entweder das Benutzersteuerelement (ControlObject) in die gleiche Assembly wie das Add-In verschieben oder alle Attribute des Benutzersteuerelements aktivieren, um es für COM vollständig sichtbar zu machen. (Hierzu gehört z. B. das Aktivieren der Option Für COM-Interop registrieren in den Kompilierungsoptionen des Projekts.) Andernfalls kann das Steuerelement kein ordnungsgemäßes Marshalling durchführen, und CreateToolWindow2 gibt einen NULL-Wert zurück.

Wenn Sie versuchen, Sichtbarkeitszustände des neuen Toolfensters, wie Höhe, Breite oder Position, einzurichten, bevor das Toolfenster sichtbar ist, wird ein Fehler erzeugt. Stellen Sie sicher, dass das Fenster sichtbar ist, bevor Sie versuchen, solche Eigenschaften festzulegen.

Weitere Beispiele für die Verwendung dieser Methode finden Sie im Beispiel zu Toolfenstern auf der Webseite für Visual Studio-Automatisierungsbeispiele: https://www.microsoft.com/downloads/details.aspx?familyid=3ff9c915-30e5-430e-95b3-621dccd25150&displaylang=en. Informationen über dei Erstellung von ActiveX-Steuerelementen finden Sie unter Erstellen eines MFC-ActiveX-Steuerelements.

Beispiele

Für das folgende Beispiel muss zuvor ein Benutzersteuerelement erstellt werden. Erstellen Sie dazu ein Windows-Steuerelementbibliothek-Projekt. Notieren Sie den Namen des Projekts und der Klasse für das Steuerelement. Ändern Sie die assemblypath-Zeichenfolge in das Verzeichnis für die DLL-Datei des Benutzersteuerelements. Der Code ist zum Ersetzen der OnConnection-Methode eines Add-In-Projekts bestimmt.

[C#]

public void OnConnection(object application, ext_ConnectMode 
  connectMode, object addInInst, ref Array custom)
{
    _applicationObject = (DTE2)application;
    _addInInstance = (AddIn)addInInst;
    EnvDTE80.Windows2 wins2obj;
    AddIn addinobj;
    object ctlobj = null;
    Window newWinobj;

    // A toolwindow must be connected to an add-in, so this line 
    // references one.
    addinobj = _applicationObject.AddIns.Item(1);
    wins2obj = (Windows2)_applicationObject.Windows;

    // This section specifies the path and class name of the windows 
    // control that you want to host in the new tool window, as well as 
    // its caption and a unique GUID.
    string assemblypath = "C:\\temp\\WindowsControlLibrary1.dll";
    string classname = "WindowsControlLibrary1.UserControl1";
    string guidpos = "{426E8D27-3D33-4FC8-B3E9-9883AADC679F}";
    string caption = "CreateToolWindow2 Test";

    // Create the new tool window and insert the user control in it.
    newWinobj = wins2obj.CreateToolWindow2(addinobj, assemblypath, 
      classname, caption, guidpos, ref ctlobj);
    newWinobj.Visible = true;
}

.NET Framework-Sicherheit

Siehe auch

Referenz

Windows2 Schnittstelle

EnvDTE80-Namespace

Weitere Ressourcen

Gewusst wie: Erstellen und Steuern von Toolfenstern

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell