Metodo Windows2.CreateToolWindow2
Crea una nuova finestra degli strumenti e vi inserisce un controllo .NET definito dall'utente.
Spazio dei nomi: EnvDTE80
Assembly: EnvDTE80 (in EnvDTE80.dll)
Sintassi
'Dichiarazione
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
Parametri
Addin
Tipo: AddInIstanza del componente aggiuntivo per la creazione della finestra degli strumenti.
Assembly
Tipo: StringNome completo o percorso di file dell'assembly che contiene il controllo utente.
Class
Tipo: StringNome completo della classe che implementa il controllo utente.
Caption
Tipo: StringTitolo da visualizzare nella nuova finestra degli strumenti.
GuidPosition
Tipo: StringIdentificatore univoco per la nuova finestra. (Può essere utilizzato per individuare la finestra nella raccolta Windows.)
ControlObject
Tipo: Object%Controllo utente da inserire nella nuova finestra degli strumenti.
Valore restituito
Tipo: Window
Oggetto Window.
Note
Prima di richiamare il metodo CreateToolWindow2 per creare una nuova finestra degli strumenti, è opportuno spostare il controllo utente (ControlObject) nello stesso assembly in cui si trova il componente aggiuntivo oppure impostare tutti gli attributi sul controllo utente per renderlo completamente visibile a COM. A questo scopo, ad esempio, è possibile selezionare l'opzione Registra per interoperabilità COM nelle opzioni di compilazione del progetto. Se non si procede in questo modo, il controllo non eseguirà correttamente il marshalling e il metodo CreateToolWindow2 restituirà un valore null.
Se si tenta di impostare gli stati di visibilità della nuova finestra degli strumenti, ad esempio altezza, larghezza o posizione, prima che la finestra degli strumenti sia visibile, si verifica un errore. Assicurarsi che la finestra sia visibile prima di tentare di impostare queste proprietà.
Per ulteriori esempi dell'utilizzo del metodo, vedere l'esempio ToolWindow nella pagina Web dedicata all'automazione di Visual Studio: https://www.microsoft.com/downloads/details.aspx?familyid=3ff9c915-30e5-430e-95b3-621dccd25150&displaylang=en (informazioni in lingua inglese). Per informazioni sulla creazione di controlli ActiveX, vedere Creazione di un controllo ActiveX MFC.
Esempi
Nell'esempio riportato di seguito è necessario creare innanzitutto un controllo utente mediante la compilazione di un progetto Libreria di controlli Windows. Annotare il nome del progetto del controllo e la classe da utilizzare nel codice riportato di seguito. Modificare la stringa assemblypath specificando la directory del file DLL del controllo utente. Inoltre, il codice è progettato per sostituire il metodo OnConnection di un progetto di componente aggiuntivo.
[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;
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per altre informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
Altre risorse
Procedura: creare e controllare finestre degli strumenti
Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione