Procedura dettagliata: associazione ai dati di un servizio in un progetto a livello di applicazione
Aggiornamento: Luglio 2008
Si applica a |
---|
Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati. Tipo di progetto
Versione Microsoft Office
Per ulteriori informazioni, vedere la classe Funzionalità disponibili in base ai tipi di progetto e applicazione. |
A partire da Visual Studio 2008 Service Pack 1 (SP1), è possibile associare dati ai controlli host in progetti a livello di applicazione. In questa procedura dettagliata viene illustrato come aggiungere controlli a un documento di Microsoft Office Word, associare i controlli ai dati recuperati da MSDN Content Service e rispondere agli eventi in fase di esecuzione.
Vengono illustrate le attività seguenti:
Aggiunta di un controllo RichTextContentControl a un documento in fase di esecuzione.
Associazione del controllo RichTextContentControl ai dati di un servizio Web.
Risposta all'evento Entering di un controllo RichTextContentControl.
Nota: |
---|
Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio. |
Prerequisiti
Per completare la procedura dettagliata è necessario disporre dei componenti elencati di seguito.
Visual Studio Tools per Office°(componente facoltativo di Visual Studio 2008 Professional e Visual Studio Team System).
Visual Studio Tools per Office viene installato per impostazione predefinita con le versioni di Visual Studio elencate. Per controllare se è installato, vedere Installazione di Visual Studio Tools per Office.
Word 2007.
Creazione di un nuovo progetto
Il primo passaggio consiste nella creazione di un progetto componente aggiuntivo per Word.
Per creare un nuovo progetto
Creare un progetto Componente aggiuntivo per Word 2007 denominato MSDN Content Service in Visual Basic o C#.
Per ulteriori informazioni, vedere la classe Procedura: creare progetti Visual Studio Tools per Office.
In Visual Studio viene aperto il file ThisAddIn.vb o ThisAddIn.cs e aggiunto il progetto a Esplora soluzioni.
Aggiunta di un servizio Web
Per questa procedura dettagliata, utilizzare un servizio Web denominato MSDN Content Service. Questo servizio Web restituisce le informazioni di un articolo specifico di MSDN sotto forma di stringa XML o testo normale. In un passaggio successivo viene illustrato come visualizzare le informazioni restituite in un controllo del contenuto.
Per aggiungere MSDN Content Service al progetto
Scegliere Aggiungi nuova origine dati dal menu Dati.
Nella Configurazione guidata origine dati, scegliere Servizio, quindi Avanti.
Nel campo Indirizzo, digitare l'URL seguente:
http://services.msdn.microsoft.com/ContentServices/ContentService.asmx
Fare clic su Vai.
Nel campo Spazio dei nomi, digitare ContentService, quindi scegliere OK.
Nella finestra di dialogo Procedura guidata per l'aggiunta del riferimento, scegliere Fine.
Aggiunta di un controllo del contenuto e di un'associazione ai dati in fase di esecuzione
Nei progetti a livello di applicazione è possibile aggiungere e associare i controlli in fase di esecuzione. Per questa procedura dettagliata, configurare il controllo del contenuto in modo che recuperi i dati dal servizio Web quando un utente esegue una selezione all'interno del controllo.
Per aggiungere un controllo del contenuto ed eseguire associazioni ai dati
Nella classe ThisAddIn, dichiarare le variabili per MSDN Content Service, il controllo del contenuto e l'associazione dati.
Private request As ContentService.getContentRequest Private proxy As ContentService.ContentServicePortTypeClient Private document As ContentService.requestedDocument() Private response As ContentService.getContentResponse Private appId As ContentService.appId Private WithEvents richTextContentControl _ As Microsoft.Office.Tools.Word.RichTextContentControl Private components As System.ComponentModel.Container Private primaryDocumentsBindingSource As _ System.Windows.Forms.BindingSource
private ContentService.getContentRequest request; private ContentService.ContentServicePortTypeClient proxy; private ContentService.requestedDocument[] document; private ContentService.getContentResponse response; private ContentService.appId appId; private Microsoft.Office.Tools.Word.RichTextContentControl richTextContentControl; private System.ComponentModel.Container components; private System.Windows.Forms.BindingSource primaryDocumentsBindingSource;
Aggiungere il seguente metodo alla classe ThisAddIn. Questo metodo consente di creare un controllo del contenuto all'inizio del documento attivo.
Private Sub AddRichTextControlAtRange() Dim currentDocument As Word.Document = Me.Application.ActiveDocument currentDocument.Paragraphs(1).Range.InsertParagraphBefore() Dim extendedDocument As Document = currentDocument.GetVstoObject() richTextContentControl = _ extendedDocument.Controls.AddRichTextContentControl _ (currentDocument.Paragraphs(1).Range, "richTextControl2") richTextContentControl.PlaceholderText = _ "Click here to download MSDN Library information about content controls." End Sub
private void AddRichTextControlAtRange() { Word.Document currentDocument = this.Application.ActiveDocument; currentDocument.Paragraphs[1].Range.InsertParagraphBefore(); Document extendedDocument = currentDocument.GetVstoObject(); richTextContentControl = extendedDocument.Controls.AddRichTextContentControl( currentDocument.Paragraphs[1].Range, "richTextContentControl"); richTextContentControl.PlaceholderText = "Click here to download MSDN Library information about content controls."; }
Aggiungere il seguente metodo alla classe ThisAddIn. Questo metodo consente di inizializzare gli oggetti necessari per creare e inviare una richiesta al servizio Web.
Private Sub InitializeServiceObjects() request = New ContentService.getContentRequest() proxy = New ContentService.ContentServicePortTypeClient() document = New ContentService.requestedDocument(0) {} response = New ContentService.getContentResponse() appId = New ContentService.appId() components = New System.ComponentModel.Container() primaryDocumentsBindingSource = _ New System.Windows.Forms.BindingSource(components) End Sub
private void InitializeServiceObjects() { request = new ContentService.getContentRequest(); proxy = new ContentService.ContentServicePortTypeClient(); document = new ContentService.requestedDocument[1]; response = new ContentService.getContentResponse(); appId = new ContentService.appId(); components = new System.ComponentModel.Container(); primaryDocumentsBindingSource = new System.Windows.Forms.BindingSource(this.components); }
Creare un gestore eventi per recuperare il documento di MSDN Library sui controlli del contenuto quando un utente esegue una selezione all'interno del controllo del contenuto e associa i dati al controllo del contenuto.
Private Sub richTextContentControl_Entering _ (ByVal sender As Object, ByVal e As ContentControlEnteringEventArgs) _ Handles richTextContentControl.Entering document(0) = New ContentService.requestedDocument() With document(0) .type = ContentService.documentTypes.primary .selector = "Mtps.Xhtml" End With With request .contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d" .locale = "en-us" .version = "VS.90" .requestedDocuments = document End With response = proxy.GetContent(appId, request) primaryDocumentsBindingSource.DataSource = _ response.primaryDocuments(0).Any.InnerText richTextContentControl.DataBindings.Add( _ "Text", _ primaryDocumentsBindingSource.DataSource, _ "", _ True, _ System.Windows.Forms.DataSourceUpdateMode.OnValidation) End Sub
void richTextContentControl_Entering(object sender, ContentControlEnteringEventArgs e) { document[0] = new ContentService.requestedDocument(); document[0].type = ContentService.documentTypes.primary; document[0].selector = "Mtps.Xhtml"; request.contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d"; request.locale = "en-us"; request.version = "VS.90"; request.requestedDocuments = document; response = proxy.GetContent(appId, request); primaryDocumentsBindingSource.DataSource = response.primaryDocuments[0].Any.InnerText; richTextContentControl.DataBindings.Add( "Text", primaryDocumentsBindingSource.DataSource, "", true, System.Windows.Forms.DataSourceUpdateMode.OnValidation); }
Chiamare i metodi AddRichTextControlAtRange e InitializeServiceObjects dal metodo ThisAddIn_Startup. Per i programmatori C#, aggiungere un gestore eventi.
Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup AddRichTextControlAtRange() InitializeServiceObjects() End Sub
private void ThisAddIn_Startup(object sender, System.EventArgs e) { AddRichTextControlAtRange(); InitializeServiceObjects(); this.richTextContentControl.Entering += new EventHandler<ContentControlEnteringEventArgs> (richTextContentControl_Entering); }
Test del componente aggiuntivo
Quando si apre Word, viene visualizzato il controllo RichTextContentControl. Il testo del controllo viene modificato quando si esegue una selezione all'interno dello stesso.
Per verificare il componente aggiuntivo
Premere F5.
Selezione all'interno del controllo del contenuto.
Le informazioni vengono scaricate da MSDN Content Service e visualizzate all'interno del controllo del contenuto.
Vedere anche
Concetti
Associazione di dati ai controlli
Cronologia delle modifiche
Date |
History |
Motivo |
---|---|---|
Luglio 2008 |
Argomento aggiunto. |
Modifica di funzionalità in SP1. |