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: AddInInstancia del complemento que crea la ventana de herramientas.
Assembly
Tipo: StringNombre completo o ruta de acceso del ensamblado que contiene el control de usuario.
Class
Tipo: StringNombre completo de la clase que implementa el control de usuario.
Caption
Tipo: StringLa leyenda que se muestra en la nueva ventana de herramientas.
GuidPosition
Tipo: StringIdentificador único para la nueva ventana (se puede utilizar para buscar la ventana en la colección de Windows).
ControlObject
Tipo: Object%Control de usuario que se va a hospedar en la nueva ventana de herramientas.
Valor devuelto
Tipo: 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
- 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