Практическое руководство. Управление панелью элементов
Надстройки Visual Studio выступан сопоставления в Visual Studio 2013. Необходимо обновить для надстройки с расширениями VSPackage. Дополнительные сведения об обновлении см. в разделе Часто задаваемые вопросы. Преобразование надстроек в расширения VSPackage.
В модели автоматизации Visual Studio объект ToolBox представлен следующими объектами и коллекциями:
Имя объекта |
Описание |
---|---|
Объект ToolBox |
Представляет Панель элементов. |
Коллекция ToolBoxTabs |
Представляет все вкладки в Панели элементов. |
Объект ToolBoxTab2 |
Представляет одну вкладку в Панели элементов. |
Объект ToolBoxTab3 |
Представляет одну вкладку в Панели элементов. |
Коллекция ToolBoxItem2 |
Коллекция, которая содержит все элементы во вкладке Панели элементов. |
Объект ToolBoxItem |
Представляет один элемент вкладки Панели элементов. |
Использование этих объектов и коллекций дает возможность:
Добавлять вкладку на Панель элементов (метод Add).
Активировать вкладку на Панели элементов (метод Activate).
Удалять вкладку из Панели элементов (метод Delete).
Добавлять элемент на Панель элементов (метод Add).
Выбирать элемент из Панели элементов (метод Select).
Удалять элемент из вкладки Панели элементов (метод Delete).
Изменять представление Списка задач на представление значков или списка (свойство ListView).
Управлять можно не только содержимым Панели элементов, но и такими его характеристиками, как ширина и высота. Для получения дополнительной информации см. Практическое руководство. Изменение параметров окон.
Примечание
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Эти процедуры были разработаны с обычными параметрами разработки.Чтобы изменить настройки, в меню Сервис выберите команду Импорт и экспортпараметров.Для получения дополнительной информации см. Настройка параметров разработки в Visual Studio.
Пример
В следующем примере показано, как использовать различные члены модели автоматизации Панели элементов и ссылаться на них. В этом примере создается новая вкладка Панели элементов, на нее добавляется пара элементов (включая компонент .NET), а затем один из них удаляется. Можно также удалить созданную вкладку целиком. Дополнительные сведения о запуске примера см. в разделе Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации.
' VSMacro
Sub ToolboxExample()
Dim tlBox As ToolBox
Dim tbxTabs As ToolBoxTabs
Dim tbxTab As ToolBoxTab
Dim tbxItems As ToolBoxItems
Dim tbxItem As ToolBoxItem
Try
' Create an object reference to the IDE's ToolBox object and
' its tabs.
tlBox = DTE.Windows.Item(Constants.vsWindowKindToolbox).Object
tbxTabs = tlBox.ToolBoxTabs
' Add a new tab to the Toolbox and select it.
tbxTab = tbxTabs.Add("New ToolBox Tab")
tbxTab.Activate()
' Add new items to the new Toolbox tab. This shows two
' different ways to index the Toolbox tabs. The third item
' added is a .NET component that contains a number of
' Web-related controls.
tbxTab.ToolBoxItems.Add("Text Item", "Hello world")
tbxTab.ToolBoxItems.Add("HTML Item", "Hello world", _
vsToolBoxItemFormat.vsToolBoxItemFormatHTML)
' Replace the <Path and name of a .NET dll>
' with a path to a .NET dll file.
tbxTabs.Item("New Toolbox Tab").ToolBoxItems.Add _
("DotNET Component", "< Path and name of a .NET dll >", _
vsToolBoxItemFormat. _
vsToolBoxItemFormatDotNETComponent)
' Use the ToolboxItems collection to access all the items under
' a ToolBox tab.
tbxItems = tbxTab.ToolBoxItems
' List the number of ToolboxItems in a ToolBoxTab.
MsgBox _
("Number of items in " & tbxTabs.Item(1).Name & " tab: " _
& tbxItems.Count)
' Select the second item in the ToolboxItems collection and
' delete it.
tbxItems.Item(2).Select()
If (MsgBox("Delete the second ToolBox item?", vbYesNo) = vbYes) _
Then
tbxItems.SelectedItem.Delete()
MsgBox("Number of items in " & tbxTabs.Item(1).Name & " _
tab: " & tbxItems.Count)
End If
If (MsgBox("Delete the new tab?", vbYesNo) = vbYes) Then
tbxTabs.Item("New ToolBox Tab").Delete()
MsgBox("Tab deleted.")
End If
Catch ex As System.Exception
MsgBox("ERROR: " & ex.Message)
End Try
End Sub
Using System.Windows.Forms;
public void OnConnection(object application,
Extensibility.ext_ConnectMode connectMode, object addInInst, ref
System.Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
// Pass the applicationObject member variable to the code example.
ToolboxExample(_applicationObject);
}
public void ToolboxExample( DTE2 dte )
{
ToolBox tlBox = null;
ToolBoxTabs tbxTabs = null;
ToolBoxTab3 tbxTab = null;
ToolBoxItems tbxItems = null;
ToolBoxItem2 tbxItem = null;
try
{
// Create an object reference to the IDE's ToolBox object and
// its tabs.
tlBox = (ToolBox )( dte.Windows.Item(
Constants.vsWindowKindToolbox ).Object );
tbxTabs = tlBox.ToolBoxTabs;
// Add a new tab to the Toolbox and select it.
tbxTab = (ToolBoxTab3)tbxTabs.Add( "New ToolBox Tab" );
tbxTab.Activate();
// Add new items to the new Toolbox tab. This shows two
// different ways to index the Toolbox tabs. The third item
// added is a .NET component that contains a number of
// Web-related controls.
tbxTab.ToolBoxItems.Add( "Text Item", "Hello world",
(EnvDTE.vsToolBoxItemFormat.vsToolBoxItemFormatText));
tbxTab.ToolBoxItems.Add( "HTML Item", "Hello world"
, vsToolBoxItemFormat.vsToolBoxItemFormatHTML );
// Replace the <Path and name of a .NET dll>
// with a path to a .NET dll file.
tbxTabs.Item( "New Toolbox Tab" ).ToolBoxItems.Add
( "DotNET Component",
"<Path and name of a .NET dll>",
vsToolBoxItemFormat.vsToolBoxItemFormatDotNETComponent );
// Use the ToolboxItems collection to access all the
// items under a ToolBox tab.
tbxItems = tbxTab.ToolBoxItems;
// List the number of ToolboxItems in a ToolBoxTab.
MessageBox.Show( "Number of items in " +
tbxTabs.Item( 1 ).Name + " tab: " + tbxItems.Count);
// Select the second item in the ToolboxItems collection and
// delete it.
// Comment the following lines out, if you do not want to
// delete the controls.
tbxItems.Item( 2 ).Select();
tbxItems.SelectedItem.Delete();
MessageBox.Show( "Number of items in "
+ tbxTabs.Item( 1 ).Name + " tab: " + tbxItems.Count);
tbxTabs.Item( "New ToolBox Tab" ).Delete();
MessageBox.Show( "Tab deleted.");
}
catch ( System.Exception ex )
{
MessageBox.Show( "ERROR: " + ex.Message);
}
}
Безопасность
При добавлении COM-объекта, который должен быть зарегистрирован на Панели элементов, происходит попытка регистрации компонента COM. Регистрация завершится ошибкой, если пользователь вошел в систему не в качестве администратора (или члена группы администраторов), и COM-объект не добавится на Панель элементов.
Независимо от уровня разрешений просматривать и добавлять незарегистрированные компоненты COM на Панель элементов невозможно.
См. также
Задачи
Практическое руководство. Изменение параметров окон
Практическое руководство. Создание надстройки
Пошаговое руководство. Создание мастера
Основные понятия
Диаграмма модели объектов автоматизации