Windows2.CreateToolWindow2 - метод
Создает новое инструментальное окно, в котором размещается пользовательский элемент управления .NET.
Пространство имен: EnvDTE80
Сборка: EnvDTE80 (в EnvDTE80.dll)
Синтаксис
'Декларация
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
Параметры
- Addin
Тип: EnvDTE.AddIn
Экземпляр надстройки, создающей инструментальное окно.
- Assembly
Тип: System.String
Полное имя или путь к файлу сборки, содержащей пользовательский элемент управления.
- Class
Тип: System.String
Полное имя класса, реализующего пользовательский элемент управления.
- Caption
Тип: System.String
Заголовок, отображаемый в новом инструментальном окне.
- GuidPosition
Тип: System.String
Уникальный идентификатор нового окна.(Может использоваться для поиска окна в коллекции Windows.)
- ControlObject
Тип: System.Object%
Пользовательский элемент управления, который следует разместить в новом инструментальном окне.
Возвращаемое значение
Тип: EnvDTE.Window
Объект Window.
Заметки
Перед вызовом метода CreateToolWindow2 для создания нового окна инструментов необходимо либо переместить пользовательский элемент управления (ControlObject) в сборку, в которой находится надстройка, либо установить все атрибуты пользовательского элемента управления так, чтобы он был полностью виден для модели COM.(Например, можно установить параметр Регистрация для COM-взаимодействия в параметрах компиляции проекта.) Если этого не сделать, маршалинг элемента управления не будет произведена должным образом, и метод CreateToolWindow2 вернет нулевое значение.
При попытке установить видимые состояния для нового окна инструмента — например, высоту, ширину или расположение — до того, как окно инструмента станет видимым, произойдет ошибка.Убедитесь, что окно является видимым перед тем, как пытаться установить какие-либо его свойства.
Дополнительные примеры использования этого метода см. в примере ToolWindow на веб-странице "Образцы автоматизации Visual Studio" ( Automation Samples): https://www.microsoft.com/downloads/details.aspx?familyid=3ff9c915-30e5-430e-95b3-621dccd25150&displaylang=en.Сведения о создании элементов ActiveX управления см. в разделе Создание элемента управления ActiveX MFC.
Примеры
В следующем примере необходимо предварительно создать пользовательский элемент управления путем создания библиотеки элементов управления Windows.Запомните имя проекта и класса элемента управления, который будет использоваться в следующем коде.Измените строку пути к сборке на путь к каталогу, в котором содержится DLL-файл пользовательского элемента управления.Кроме того, в коде предусмотрена замена метода OnConnection проекта надстройки.
[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;
}
Безопасность платформы .NET Framework
- Полное доверие для непосредственно вызывающего метода. Этот член не может быть использован частично доверенным кодом. Дополнительные сведения см. в разделе Использование библиотек из не вполне надежного кода.
См. также
Ссылки
Другие ресурсы
Практическое руководство. Создание окон инструментов и управление ими
Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации