Share via


Windows2.CreateToolWindow2, méthode

Crée une fenêtre Outil et y héberge un contrôle .NET défini par l'utilisateur.

Espace de noms :  EnvDTE80
Assembly :  EnvDTE80 (dans EnvDTE80.dll)

Syntaxe

'Déclaration
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

Paramètres

  • Addin
    Type : EnvDTE.AddIn
    Instance du Complément qui crée la fenêtre Outil.
  • Assembly
    Type : System.String
    Nom complet ou chemin d'accès de l'assembly qui contient le contrôle utilisateur.
  • Class
    Type : System.String
    Nom complet de la classe qui implémente le contrôle utilisateur.
  • Caption
    Type : System.String
    Légende à afficher dans la nouvelle fenêtre Outil.
  • GuidPosition
    Type : System.String
    Identificateur unique pour la nouvelle fenêtre.(Cela peut être utilisé pour localiser la fenêtre dans la collection Windows.)
  • ControlObject
    Type : System.Object%
    Contrôle utilisateur à héberger dans la nouvelle fenêtre Outil.

Valeur de retour

Type : EnvDTE.Window
Objet Window.

Notes

Avant d'appeler CreateToolWindow2 pour créer une fenêtre Outil, vous devez déplacer le contrôle utilisateur (ControlObject) dans le même assembly en tant que complément ou définir tous les attributs du contrôle utilisateur pour qu'il soit entièrement visible par COM. (Par exemple, contrôle de l'option Inscrire pour COM interop dans les options de compilation du projet.) Si vous n'effectuez pas cette opération, le contrôle ne marshalera pas correctement et CreateToolWindow2 retournera une valeur null.

Si vous essayez de définir les états de visibilité de la nouvelle fenêtre Outil - tels que hauteur, largeur ou position - avant que la fenêtre Outil soit visible, vous obtenez une erreur. Assurez-vous que la fenêtre est visible avant d'essayer de définir ces propriétés.

Pour obtenir d'autres exemples d'utilisation de cette méthode, consultez l'exemple ToolWindow sur la page Web des exemples Automation de Visual Studio à l'adresse suivante : https://www.microsoft.com/downloads/details.aspx?familyid=3ff9c915-30e5-430e-95b3-621dccd25150&displaylang=en Pour plus d'informations sur la création de contrôles ActiveX, consultez Création d'un contrôle ActiveX MFC.

Exemples

L'exemple suivant nécessite que vous créiez d'abord un contrôle utilisateur en générant un projet Bibliothèque de contrôles Windows. Notez le nom du projet et de la classe du contrôle pour l'utiliser dans le code suivant. Modifiez la chaîne assemblypath pour qu'elle corresponde au répertoire du fichier dll du contrôle utilisateur. Par ailleurs, le code est conçu pour remplacer la méthode OnConnection d'un projet de complément.

[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;
}

Sécurité .NET Framework

Voir aussi

Référence

Windows2 Interface

EnvDTE80, espace de noms

Autres ressources

Comment : créer et contrôler des fenêtres Outil

Comment : compiler et exécuter les exemples de code du modèle objet Automation