Share via


Windows2.CreateToolWindow2 (Método)

Actualización: noviembre 2007

Crea una nueva ventana de herramientas y aloja un control de .NET definido por el usuario en ella.

Espacio de nombres:  EnvDTE80
Ensamblado:  EnvDTE80 (en EnvDTE80.dll)

Sintaxis

Function CreateToolWindow2 ( _
    Addin As AddIn, _
    Assembly As String, _
    Class As String, _
    Caption As String, _
    GuidPosition As String, _
    <OutAttribute> ByRef ControlObject As Object _
) As Window

Dim instance As Windows2
Dim Addin As AddIn
Dim Assembly As String
Dim Class As String
Dim Caption As String
Dim GuidPosition As String
Dim ControlObject As Object
Dim returnValue As Window

returnValue = instance.CreateToolWindow2(Addin, _
    Assembly, Class, Caption, GuidPosition, _
    ControlObject)
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
)
function CreateToolWindow2(
    Addin : AddIn, 
    Assembly : String, 
    Class : String, 
    Caption : String, 
    GuidPosition : String, 
    ControlObject : Object
) : Window

Parámetros

  • Addin
    Tipo: EnvDTE.AddIn

    Instancia del complemento que crea la ventana de herramientas.

  • Assembly
    Tipo: System.String

    Nombre completo o ruta de acceso del ensamblado que contiene el control de usuario.

  • Class
    Tipo: System.String

    Nombre completo de la clase que implementa el control de usuario.

  • Caption
    Tipo: System.String

    El título que se muestra en la nueva ventana de herramientas.

  • GuidPosition
    Tipo: System.String

    Identificador único para la nueva ventana (se puede utilizar para buscar la ventana en la colección de Windows).

  • ControlObject
    Tipo: System.Object%

    Control de usuario que se va a alojar en la nueva ventana de herramientas.

Valor devuelto

Tipo: EnvDTE.Window

Un objeto Window.

Comentarios

Antes de invocar a CreateToolWindow2 para crear una nueva ventana de herramientas, debe mover el control User (ControlObject) al mismo ensamblado que el complemento o debe establecer todos los atributos del control User para que esté totalmente visible para COM. (Por ejemplo, active la opción Registrar para interoperabilidad COM en las opciones de compilación del proyecto.) Si no lo hace, el control no calculará las referencias correctamente y CreateToolWindow2 devolverá un valor nulo.

Si intenta establecer estados de visibilidad de la nueva ventana de herramientas (como alto, ancho o posición) antes de que la ventana de herramientas sea visible, obtendrá un error. Asegúrese de que la ventana es visible antes de intentar establecer ninguna propiedad de ese tipo.

Para obtener más ejemplos de cómo utilizar este método, vea el de ToolWindow en la página Web de ejemplos de automatización de Visual Studio: https://www.microsoft.com/downloads/details.aspx?familyid=3ff9c915-30e5-430e-95b3-621dccd25150&displaylang=en. Para obtener información sobre cómo crear controles ActiveX, vea Crear un control ActiveX MFC.

Ejemplos

El ejemplo siguiente requiere crear primero un control de usuario generando un proyecto de la Biblioteca de controles de Windows. Anote el nombre del proyecto y la clase del control para utilizarlos en el código siguiente. Cambie la cadena assemblypath al directorio del archivo DLL del control de usuario. A su vez, el código está diseñado para reemplazar el método OnConnection de un proyecto de complemento.

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

Permisos

Vea también

Referencia

Windows2 (Interfaz)

Windows2 (Miembros)

EnvDTE80 (Espacio de nombres)

Otros recursos

Cómo: Crear y controlar ventanas de herramientas

Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización