Condividi tramite


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: AddIn

    Istanza del componente aggiuntivo per la creazione della finestra degli strumenti.

  • Assembly
    Tipo: String

    Nome completo o percorso di file dell'assembly che contiene il controllo utente.

  • Class
    Tipo: String

    Nome completo della classe che implementa il controllo utente.

  • Caption
    Tipo: String

    Titolo da visualizzare nella nuova finestra degli strumenti.

  • GuidPosition
    Tipo: String

    Identificatore 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

Vedere anche

Riferimenti

Windows2 Interfaccia

Spazio dei nomi EnvDTE80

Altre risorse

Procedura: creare e controllare finestre degli strumenti

Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione