Поделиться через


Практическое руководство. Управление панелью элементов

Обновлен: Ноябрь 2007

В модели автоматизации Visual Studio объект ToolBox представлен следующими объектами и коллекциями:

Имя объекта

Описание

Объект ToolBox

Представляет Панель элементов.

Коллекция ToolBoxTabs

Представляет все вкладки в Панели элементов.

Объект ToolBoxTab2

Представляет одну вкладку в Панели элементов.

Коллекция ToolBoxItem2

Коллекция, которая содержит все элементы во вкладке Панели элементов.

Объект ToolBoxItem

Представляет один элемент вкладки Панели элементов.

Использование этих объектов и коллекций дает возможность:

  • Добавлять вкладку на Панель элементов (метод Add).

  • Активировать вкладку на Панели элементов (метод Activate).

  • Удалять вкладку из Панели элементов (метод Delete).

  • Добавлять элемент на Панель элементов (метод Add).

  • Выбирать элемент из Панели элементов (метод Select).

  • Удалять элемент из вкладки Панели элементов (метод Delete).

  • Изменять представление Списка задач на представление значков или списка (свойство ListView).

Управлять можно не только содержимым Панели элементов, но и такими его характеристиками, как ширина и высота. Дополнительные сведения см. в разделе Практическое руководство. Изменение параметров окон.

6xs853ft.alert_note(ru-ru,VS.90).gifПримечание.

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих параметров или версии. Эти процедуры были разработаны с обычными параметрами разработки. Чтобы изменить настройки, в меню Сервис выберите команду Импорт и экспортпараметров. Дополнительные сведения см. в разделе Параметры 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; 
    ToolBoxTab2 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 = (ToolBoxTab2)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 на Панель элементов невозможно.

См. также

Задачи

Практическое руководство. Изменение параметров окон

Практическое руководство. Создание надстройки

Пошаговое руководство. Создание мастера

Основные понятия

Диаграмма модели объектов автоматизации

Другие ресурсы

Создание окон среды и управление ими

Создание надстроек и мастеров

Справочник по автоматизации и возможностям расширения среды