Compartir a través de


Windows2.CreateToolWindow2 (Método)

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

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

Sintaxis

'Declaración
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

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
    La leyenda 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 hospedar en la nueva ventana de herramientas.

Valor devuelto

Tipo: EnvDTE.Window
Un objeto Window.

Comentarios

Antes de invocar CreateToolWindow2 para crear una ventana de herramientas nueva, desplace el control User (ControlObject) al mismo ensamblado que el complemento o establezca todos los atributos de dicho control de forma que sea totalmente visible para COM. (Por ejemplo, active la opción Registrar para interoperabilidad COM en las opciones de compilación del proyecto.) Si no hace esto, el control no calculará correctamente las referencias 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 compilando 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;
}

Seguridad de .NET Framework

Vea también

Referencia

Windows2 Interfaz

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