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: AddInUma instância do suplemento que cria a janela de ferramentas.
Assembly
Tipo: StringO nome completo ou o caminho do arquivo do assembly que contém o controle de usuário.
Class
Tipo: StringO nome completo da classe que implementa controle de usuário.
Caption
Tipo: StringA legenda a ser exibida na janela da ferramenta.
GuidPosition
Tipo: StringUm 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
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiável.
Consulte também
Referência
Outros recursos
Como criar e controlar janelas de ferramentas
Como compilar e executar os exemplos de código do modelo de objeto Automation