Compartilhar via


Método Windows2.CreateToolWindow2

Cria uma nova janela da ferramenta e hospeda um tipo definido pelo usuário, controle .NET nele.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (em EnvDTE80.dll)

Sintaxe

'Declaração
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: AddIn

    Uma instância do suplemento que cria a janela de ferramentas.

  • Assembly
    Tipo: String

    O nome completo ou o caminho do arquivo do assembly que contém o controle de usuário.

  • Class
    Tipo: String

    O nome completo da classe que implementa controle de usuário.

  • Caption
    Tipo: String

    A legenda a ser exibida na janela da ferramenta.

  • GuidPosition
    Tipo: String

    Um identificador exclusivo para a nova janela. (Isso pode ser usado para localizar a janela na coleção de Windows .)

  • ControlObject
    Tipo: Object%

    O controle de usuário a ser hospedado na janela da ferramenta.

Valor de retorno

Tipo: Window
Um objeto Window.

Comentários

Antes de invocar o CreateToolWindow2 para criar uma nova janela da ferramenta, você deverá ou mover o controle de usuário ()ControlObjectno mesmo assembly que o suplemento, ou define todos os atributos no controle de usuário totalmente para torná-lo visível à. (Por exemplo, verificando a opção de Registrar para interoperabilidade COM no projeto criar opções.) Se você não fizer isso, o controle não marshaling corretamente e o CreateToolWindow2 retornará um valor nulo.

Se você tentar definir o estado de visibilidade da janela da nova ferramenta como a altura, a largura, ou a posição — antes que a janela da ferramenta esteja visível, você obterá um erro. Certifique-se de que a janela é visível antes de tentar definir propriedades.

Para obter mais exemplos de como usar esse método, consulte o exemplo de ToolWindow na página da Web Exemplos de automação de Visual Studio : https://www.microsoft.com/downloads/details.aspx?familyid=3ff9c915-30e5-430e-95b3-621dccd25150&displaylang=en. Para obter informações sobre como criar controles ActiveX, consulte Criando um controle ActiveX MFC.

Exemplos

O exemplo a seguir requer que você cria primeiro um controle de usuário para criar um projeto de biblioteca de controle do windows. Observe o nome do projeto e da classe de controle para uso no código a seguir. Altere a cadeia de caracteres de assemblypath para o diretório de arquivo de DLL do controle de usuário. Além disso, o código é criado para substituir o método de OnConnection de um projeto do suplemento.

[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;
}

Segurança do .NET Framework

Consulte também

Referência

Windows2 Interface

Namespace EnvDTE80

Outros recursos

Como criar e controlar janelas de ferramentas

Como compilar e executar os exemplos de código do modelo de objeto Automation