Método Windows2.CreateToolWindow2

Cria uma nova janela de ferramenta e hospeda um usuário-definido.NET controle 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: EnvDTE.AddIn
    Uma instância de suplemento criando a janela da ferramenta.
  • Assembly
    Tipo: System.String
    O nome completo ou o caminho do arquivo do assembly que contém o controle de usuário.
  • Class
    Tipo: System.String
    O nome completo da classe de implementação do controle de usuário.
  • Caption
    Tipo: System.String
    A legenda para exibir em uma nova janela de ferramenta.
  • GuidPosition
    Tipo: System.String
    Um identificador exclusivo para a nova janela.(Isso pode ser usado para localizar a janela de Windows coleção.)
  • ControlObject
    Tipo: System.Object%
    O controle de usuário para ser hospedado em uma nova janela de ferramenta.

Valor de retorno

Tipo: EnvDTE.Window
A Window object.

Comentários

Antes de invocar CreateToolWindow2 para criar uma nova janela de ferramenta, você deve mover o controle de usuário (ControlObject) no mesmo assembly como suplemento ou é definido todos os atributos no controle de usuário para torná-lo totalmente visível para com.(Por exemplo, verificando a Register for COM interop opções de compilação de opção do projeto.) Se você não fizer isso, o controle não controlará corretamente e CreateToolWindow2 retornará um valor nulo.

Se você tentar definir estados de visibilidade da nova janela de ferramenta — como, por exemplo, altura, largura ou posição — antes que a janela de ferramentas estiver visível, você obterá um erro.Certifique-se de que a janela está visível antes de tentar definir quaisquer dessas propriedades.

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

Exemplos

O exemplo a seguir requer que você primeiro cria um controle de usuário, criando um projeto de biblioteca de controle do Windows.Anote o nome do projeto e a classe do controle para uso no código a seguir.Altere a seqüência de assemblypath para o diretório do arquivo DLL do controle de usuário.Além disso, o código é projetado para substituir o OnConnection o método 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 de modelo de objeto de automação