Utilizzando le pagine di opzioni
Il modello di automazione di Visual Studio fornisce l'oggetto di DTE per consentire a Vspackage per accedere alla finestra di dialogo di opzioni scegliere dal menu di strumenti .
In genere, le pagine nella finestra di dialogo di opzioni è possibile accedere tramite il modello di automazione, se le pagine sono fornite dall'ambiente di sviluppo integrato di (IDE) Visual Studio o da un VSPackage. Tuttavia, esistono alcune eccezioni, come segue:
Le impostazioni della pagina di La Guida dinamica non è possibile accedervi a livello di codice. La funzionalità di La Guida dinamica può essere controllata tramite il modello di automazione, ma il controllo deve essere eseguito direttamente nel codice. Per ulteriori informazioni, vedere How to: Control the Dynamic Help Window.
Il controllo delle impostazioni di Tipi di carattere e colori viene fornito con il proprio API, non tramite il modello di automazione. Per ulteriori informazioni, vedere Tipi di carattere.
Le proprietà specifiche del linguaggio non possono essere ottenute tramite il modello di automazione.
le pagine diopzioni che non supportano il modello di automazione di Visual Studio non possono restituire una raccolta di Properties di automazione una volta eseguita la query. Se la raccolta viene restituita, non tutte le funzionalità sono presenti. Per informazioni su come gestire queste funzionalità, vedere Raccolte Properties di DTE.
gestire le pagine di opzioni
Per gestire le pagine di opzioni , un VSPackage necessario ottenere un oggetto di DTE dal modello di automazione.
Nota
Quando un package VS utilizza il modello di automazione di per eseguire una query e modificare le impostazioni alle pagine installate di opzioni , non estende la funzionalità dell'IDE.Di conseguenza, il package non deve implementare un oggetto di automazione.
Per ottenere un oggetto di DTE tramite il modello di automazione, chiamare il metodo di QueryService e fornire un argomento di servizio ID di SID_SDTE e un argomento dell'interfaccia di IID__DTE, come illustrato di seguito.
pServiceProvider->QueryService(SID_SDTE, IID__DTE, (LPVOID*)pDTE);
Per ottenere un oggetto di DTE utilizzando il pacchetto gestito Framework (MPF), chiamare il metodo di GetService e fornire un parametro di serviceType di tipo SDTE.
Dim vsEnvironment As DTE = DirectCast(GetService(GetType(SDTE)), DTE)
DTE vsEnvironment = (DTE)GetService(typeof(SDTE));
An Options page is specified by two identifiers. Il primo identificatore è una stringa che indica la cartella contenente la pagina di opzioni . Il secondo identificatore è una stringa che indica l'elemento specifico in tale cartella. Questi sono definiti categoria e la sottocategoria della pagina di opzioni , o il relativo argomento e di.
Ad esempio, le impostazioni dell'editor di testo per gestire il codice di base sono nel riquadro di navigazione del membro di base della cartella di editor di testo . L'identificatore della categoria è TextEditor e la sottocategoria corrisponde a Basice la pagina stessa di opzioni viene definita la pagina di TextEditor.Basic .
Nota
Per la localizzazione e altri motivi, i nomi visualizzare le pagine di opzioni differiscano dalle stringhe utilizzate come identificatori di sottocategorie e di categoria.Potrebbe essere necessario utilizzare l'automazione per eseguire una query l'ide per ottenere gli identificatori corretti, se non documentati in un'altra posizione.Il percorso del Registro di sistema è \SOFTWARE\Microsoft\VisualStudio HKEY_LOCAL_MACHINE \ <VS la versione> \AutomationProperties, dove <VS la versione> è il numero di versione della versione di Visual Studio.Per ulteriori informazioni, vedere Per registrare pagine personalizzate di opzioni.
È possibile ottenere le proprietà della pagina di TextEditor.Basic tramite il modello di automazione utilizzando il seguente esempio.
CComPtr<_DTE> srpDTE;
CComPtr<Properties> srpDTEPropertiesList;
hr = srpDTE->get_Properties("TextEditor", "Basic", &srpDTEPropertiesList);
Per ottenere le proprietà tramite il MPF, utilizzare il metodo di Properties .
Dim propertiesList As Properties = vsEnvironment.get_Properties("TextEditor", "Basic")
If propertiesList Is Nothing Then
' The specified properties collection is not available.
Exit Sub
End If
Properties propertiesList = vsEnvironment.get_Properties("TextEditor", "Basic");
if (null == propertiesList)
{
// The specified properties collection is not available.
return;
}
Il metodo di Item restituisce le singole impostazioni della raccolta di Properties come oggetto di Property .
Come con le categorie e le sottocategorie, ogni impostazione dispone di un identificatore che è una stringa univoca. Ad esempio, Dimensione della tabulazione che imposta la pagina di TextEditor.Basic viene identificato dalla stringa, TabSize.
Nota
Per la localizzazione e altri motivi, i nomi visualizzare le pagine di opzioni differiscano dalle stringhe utilizzate come identificatori dell'impostazione.Potrebbe essere necessario utilizzare l'automazione per eseguire una query l'ide per ottenere gli identificatori corretti, se non documentati in un'altra posizione.
È possibile utilizzare Value dell'oggetto di Property restituito dal metodo di Item della raccolta di Properties per eseguire una query e modificare lo stato delle impostazioni.
Ad esempio, per impostare Dimensione della tabulazione che imposta la pagina di TextEditor.Basic tramite il modello di automazione, utilizzare l'oggetto di Properties restituito nell'esempio seguente.
CComPtr<Property> srpProperty;
hr = srpDTEPropertiesList->Item("TabSize", &srpProperty);
hr= srpProperty.set_Value(4);
Nell'esempio seguente viene illustrato come aggiornare Dimensione della tabulazione che imposta utilizzando il MPF.
Dim tabSize As [Property] = propertiesList.Item("TabSize")
Dim oldSize As Short = CShort(tabSize.Value)
Dim message As String
If oldSize <> 4 Then
tabSize.Value = 4
message = String.Format(CultureInfo.CurrentUICulture, "For Basic, the Text Editor had a tab size of {0}" & " and now has a tab size of {1}.", oldSize, tabSize.Value)
Else
message = String.Format(CultureInfo.CurrentUICulture, "For Basic, the Text Editor has a tab size of {0}.", tabSize.Value)
End If
Property tabSize = propertiesList.Item("TabSize");
short oldSize = (short)tabSize.Value;
string message;
if (oldSize != 4)
{
tabSize.Value = 4;
message = string.Format(CultureInfo.CurrentUICulture,
"For Basic, the Text Editor had a tab size of {0}" +
" and now has a tab size of {1}.", oldSize, tabSize.Value);
}
else
{
message = string.Format(CultureInfo.CurrentUICulture,
"For Basic, the Text Editor has a tab size of {0}.", tabSize.Value);
}
MessageBox.Show(message, "Text Editor, Basic, Tab Size:",
MessageBoxButtons.OK, MessageBoxIcon.Information,
MessageBoxDefaultButton.Button1, 0);
Per ulteriori informazioni, vedere Controllo delle impostazioni relative alle opzioni.
Rendere persistenti le impostazioni della pagina di opzioni
Implementa IDE dichiarano la persistenza delle pagine di opzioni completamente supportano il modello di automazione di Visual Studio .
Le impostazioni alle pagine incluse nell'IDE vengono salvate automaticamente (o recuperato) quando un utente sceglie il comando di Impostazioni esportazione/importazione scegliere dal menu di strumenti .
È possibile abilitare la pagina personalizzata di opzioni per utilizzare questo supporto automatico di persistenza aggiungendo il flag di ProfileSave alla voce del Registro di sistema personalizzata della pagina di opzioni sotto HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\VisualStudio \ <VS la versione> \AutomationProperties, dove <VS la versione> è il numero di versione della versione di Visual Studio. Per ulteriori informazioni, vedere Per registrare pagine personalizzate di opzioni.
Vedere anche
Attività
Procedura: Aprire una pagina delle opzioni a livello di codice
Riferimenti
Concetti
Creando pagine di opzioni utilizzando gli assembly di interoperabilità
Controllo delle impostazioni relative alle opzioni
Per registrare pagine personalizzate di opzioni