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.AddInInstancia del complemento que crea la ventana de herramientas.
Assembly
Tipo: System.StringNombre completo o ruta de acceso del ensamblado que contiene el control de usuario.
Class
Tipo: System.StringNombre completo de la clase que implementa el control de usuario.
Caption
Tipo: System.StringEl título que se muestra en la nueva ventana de herramientas.
GuidPosition
Tipo: System.StringIdentificador ú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
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.
Vea también
Referencia
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