Condividi tramite


Procedura: controllare la Casella degli strumenti

Nel modello di automazione di Visual Studio l'oggetto ToolBox è rappresentato dagli oggetti e dalle raccolte riportati di seguito:

Nome oggetto

Descrizione

Oggetto ToolBox

Rappresenta la Casella degli strumenti.

Raccolta ToolBoxTabs

Rappresenta tutte le schede della Casella degli strumenti.

Oggetto ToolBoxTab2

Rappresenta una scheda della Casella degli strumenti.

Oggetto ToolBoxTab3

Rappresenta una scheda della Casella degli strumenti.

Raccolta ToolBoxItem2

Raccolta che contiene tutti gli elementi di una scheda della Casella degli strumenti.

Oggetto ToolBoxItem

Rappresenta un singolo elemento di una scheda della Casella degli strumenti.

Questi oggetti e queste raccolte consentono di:

  • Aggiungere una scheda alla Casella degli strumenti tramite il metodo Add.

  • Attivare una scheda nella Casella degli strumenti tramite il metodo Activate.

  • Eliminare una scheda dalla Casella degli strumenti tramite il metodo Delete.

  • Aggiungere un elemento alla Casella degli strumenti tramite il metodo Add.

  • Selezionare un elemento nella Casella degli strumenti tramite il metodo Select.

  • Eliminare un elemento da una scheda della Casella degli strumenti tramite il metodo Delete.

  • Modificare la presentazione dell'elenco attività nella visualizzazione Icone o Elenco tramite la proprietà ListView.

Oltre a controllare il contenuto della Casella degli strumenti, è possibile controllarne caratteristiche quali larghezza e altezza.Per ulteriori informazioni, vedere Procedura: modificare le caratteristiche delle finestre.

[!NOTA]

Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in quanto dipendono dall'edizione o dalle impostazioni attive. Queste routine sono state sviluppate con le Impostazioni generali per lo sviluppo attive.Per modificare le impostazioni, scegliere Importa/EsportaImpostazioni dal menu Strumenti.Per ulteriori informazioni, vedere Impostazioni di Visual Studio.

Esempio

In questo esempio viene illustrato come fare riferimento ai diversi membri del modello di automazione della Casella degli strumenti e come utilizzarli.In questo esempio viene creata una nuova scheda della Casella degli strumenti, vengono aggiunti alcuni elementi ad essa, incluso un componente .NET, e ne viene eliminato uno.Facoltativamente, è inoltre possibile eliminare la nuova scheda.Per ulteriori informazioni su come eseguire l'esempio, vedere Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.

' 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); 
    } 
}

Sicurezza

L'aggiunta di un oggetto COM che deve essere registrato nella Casella degli strumenti comporta il tentativo di registrare il componente COM.La registrazione avrà esito negativo se non si è connessi come amministratore (o come membro del gruppo di amministratori) e l'oggetto COM non verrà aggiunto alla Casella degli strumenti.

Indipendentemente dalle autorizzazioni non è possibile cercare e aggiungere componenti COM non registrati alla Casella degli strumenti.

Vedere anche

Attività

Procedura: modificare le caratteristiche delle finestre

Procedura: creare un componente aggiuntivo

Procedura dettagliata: creazione di una procedura guidata

Concetti

Grafico del modello a oggetti di automazione

Altre risorse

Creazione e controllo delle finestre di ambiente

Creazione di componenti aggiuntivi e di procedure guidate

Riferimenti su Extensibility e automazione