Condividi tramite


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

  • Progetti a livello di applicazione

Versione Microsoft Office

  • Word 2007

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:

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

  1. Scegliere Aggiungi nuova origine dati dal menu Dati.

  2. Nella Configurazione guidata origine dati, scegliere Servizio, quindi Avanti.

  3. Nel campo Indirizzo, digitare l'URL seguente:

    http://services.msdn.microsoft.com/ContentServices/ContentService.asmx

  4. Fare clic su Vai.

  5. Nel campo Spazio dei nomi, digitare ContentService, quindi scegliere OK.

  6. 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

  1. 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;
    
  2. 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.";
    }
    
  3. 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);
    
    }
    
  4. 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);
    }
    
  5. 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

  1. Premere F5.

  2. 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.