Condividi tramite


Procedura: controllare la finestra Guida dinamica

Aggiornamento: novembre 2007

In Visual Studio è disponibile una finestra Guida dinamica contenente collegamenti agli argomenti della Guida correlati basati su un contesto dell'utente. Se, ad esempio, si avvia un'operazione di modifica nell'editor del codice, nella finestra Guida dinamica verrà visualizzato un argomento relativo all'utilizzo dell'editor del codice. Questa operazione è possibile grazie al confronto tra le parole chiave correlate al contesto corrente e un elenco di parole chiave associate agli argomenti della Guida.

L'insieme ContextAttributes e l'oggetto ContextAttribute consentono di elencare l'insieme delle parole chiave che si applicano a una finestra specifica di Visual Studio. Consentono inoltre di aggiungere e di definire le priorità degli attributi. Di conseguenza, dai client di automazione sarà possibile visualizzare gli argomenti desiderati nella finestra Guida dinamica selezionando la finestra o un suo elemento, ad esempio una scheda o un collegamento.

Un oggetto ContextAttribute rappresenta il contesto per una determinata finestra o un suo elemento, mentre ContextAttributes è un insieme di tutti gli oggetti ContextAttribute per una determinata finestra. I tipi di contesto sono tre: Filter, Lookup e LookupF1.

Filter

Viene aggiunto un attributo all'insieme dei contesti. Gli attributi sono coppie nome/valore utilizzate per filtrare gli argomenti relativi alle parole chiave di ricerca e F1 visualizzati nella finestra Guida dinamica oppure l'argomento visualizzato quando viene premuto F1.

Lookup

Viene aggiunta una parola chiave all'insieme dei contesti. L'argomento corrispondente a questa parola chiave viene visualizzato nella finestra Guida dinamica. Le parole chiave di ricerca forniscono un elenco di argomenti di supporto o correlati visualizzati nella finestra Guida dinamica. L'elenco degli argomenti delle parole chiave visualizzati nella finestra Guida dinamica viene aggiornato ogni volta che l'utente modifica la selezione corrente. Le parole chiave di ricerca hanno la stessa origine delle parole chiave visualizzate nell'indice di un file della Guida compilato.

LookupF1

L'argomento corrispondente a questa parola chiave viene visualizzato nella finestra Guida dinamica e viene utilizzato per trovare gli argomenti della Guida mediante F1. Le parole chiave F1 forniscono un argomento della Guida in linea quando un elemento di contesto quale una finestra degli strumenti, un editor o una finestra di dialogo modale viene selezionato e viene premuto F1. Anche gli argomenti delle parole chiave F1 sono elencati nella finestra Guida dinamica. Una parola chiave F1 viene aggiunta all'insieme dei contesti.

Esistono tre tipi di attributi di contesto che indicano l'origine dell'oggetto ContextAttributes:

Globale

Il contesto globale dell'ambiente di sviluppo integrato (IDE, Integrated Development Environment).

A priorità alta

L'insieme dei contesti a priorità alta. L'attributo di contesto a priorità alta indica che il collegamento dell'argomento viene visualizzato all'inizio del relativo gruppo di collegamenti nella finestra Guida dinamica.

Finestra

Un contesto di finestra.

L'insieme ContextAttributes è disponibile tramite gli oggetti riportati di seguito:

ContextAttributes

Influisce sull'insieme di contesti globale che ha la priorità più bassa per l'ordinamento degli argomenti.

ContextAttributes

Influisce sull'insieme dei contesti di una finestra. Per le finestre degli strumenti, gli attributi sono attivi soltanto quando la finestra è selezionata. Per editor e finestre di progettazione, gli attributi sono attivi finché l'editor è l'ultima finestra figlio MDI attiva. Se il valore della HighPriorityAttributes proprietà è True, gli attributi sono sempre attivi e hanno la priorità più alta.

Dopo aver associato una parola chiave a una finestra o a un elemento della stessa, è possibile utilizzarla per visualizzare un argomento della Guida. Tramite il provider della Guida XML è possibile visualizzare un URL o un argomento della Guida personalizzato. Per ulteriori informazioni, cercare "Provider della Guida XML e Guida dinamica" nella Guida di SDK di Visual Studio Industry Partner (VSIP).

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

Utilizzando gli oggetti ContextAttributes e ContextAttribute, è possibile:

  • Aggiungere o rimuovere un nome, un valore e un tipo di parola chiave.

  • Ottenere il nome e il valore di una parola chiave.

  • Ottenere un elenco di attributi a priorità alta come un insieme ContextAttributes dall'oggetto DTE.ContextAttributes.

Nota:

Le finestre di dialogo e i comandi di menu visualizzati potrebbero non corrispondere a quelli descritti nella Guida in linea 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 di componente aggiuntivo viene illustrato come fare riferimento ai diversi membri del modello di automazione della Guida dinamica e come utilizzarli. In questo esempio vengono elencati i nomi e il numero di parole chiave associate a Esplora soluzioni. Viene inoltre aggiunta una nuova parola chiave F1 che verrà in seguito rimossa. Per ulteriori informazioni su come eseguire l'esempio come componente aggiuntivo o come macro di Visual Studio, vedere Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione.

Public Sub OnConnection(ByVal application As Object, ByVal _
connectMode As ext_ConnectMode, ByVal addInInst As Object, _
ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    _applicationObject = CType(application, DTE2)
    _addInInstance = CType(addInInst, AddIn)
    ' Pass the applicationObject member variable to the code example.
    CATest(_applicationObject)
End Sub

Sub CATest(ByVal dte As DTE2)
    ' Get a reference to Solution Explorer.
    Dim SolnEx As Window = _applicationObject.Windows.Item(Constants. _
    vsWindowKindSolutionExplorer)
    Dim CA As ContextAttribute

    ' List the current attributes associated with Solution Explorer.
    ListAttr(SolnEx, CA)

    ' Associate a new F1 keyword to Solution Explorer.
    SolnEx.ContextAttributes.Add("ANewKeyword", "900", _
    vsContextAttributeType.vsContextAttributeLookupF1)
    ListAttr(SolnEx, CA)

    ' Delete the new F1 keyword from Solution Explorer.
    SolnEx.ContextAttributes.Item(3).Remove()
    ListAttr(SolnEx, CA)
End Sub

Sub ListAttr(ByVal SolnEx As Object, ByVal CA As ContextAttribute)
    ' Support function for CATest(). Lists the current attributes 
    ' associated with Solution Explorer.
    Dim msg As String
    msg = ""

    MsgBox("Number of context attributes in Solution Explorer: "  _
    & SolnEx.ContextAttributes.Count)
    For Each CA In SolnEx.ContextAttributes
        msg = msg & CA.Name & Chr(13)
    Next
    MsgBox(msg)
    msg = ""
End Sub
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.
    CATest(_applicationObject); 
}

public void CATest( DTE2 dte ) 
{ 
    // Add-in code.
    // Get a reference to Solution Explorer.
    Window SolnEx = dte.Windows.Item
( Constants.vsWindowKindSolutionExplorer ); 
    ContextAttribute CA = null; 

    // List the current attributes associated with Solution Explorer.
    ListAttr( SolnEx, CA ); 

    // Associate a new F1 keyword to Solution Explorer.
    SolnEx.ContextAttributes.Add( "ANewKeyword",
 System.Convert.ToString(900),
 vsContextAttributeType.vsContextAttributeLookupF1 ); 
    ListAttr( SolnEx, CA ); 

    // Delete the new F1 keyword from Solution Explorer.
    SolnEx.ContextAttributes.Item( 2 ).Remove(); 
    ListAttr( SolnEx, CA ); 
} 

public void ListAttr( EnvDTE.Window SolnEx, ContextAttribute CA ) 
{ 
    // Support function for CATest(). Lists the current attributes 
    // associated with Solution Explorer.
    string msg = null; 

    MessageBox.Show
( "Number of context attributes in Solution Explorer: " 
+ SolnEx.ContextAttributes.Count); 
    foreach ( EnvDTE.ContextAttribute temp in 
SolnEx.ContextAttributes ) 
    { 
        CA = temp; 
        msg = msg + CA.Name + "\n"; 
    }
    MessageBox.Show( msg); 
    msg = ""; 
}

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 oggetto di automazione

Altre risorse

Creazione e controllo delle finestre di ambiente

Creazione di componenti aggiuntivi e di procedure guidate

Riferimenti su extensibility e automazione