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
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.
Voir aussi
Référence
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