Passo a passo: Ligação a dados de um serviço em um projeto de nível de aplicativo
Você pode associar dados a controles host em projetos de aplicativo.Essa explicação passo a passo demonstra como adicionar controles a um documento Microsoft Office Word, associar controles aos dados recuperados do serviço de conteúdo do MSDN, e em tempo de execução responder a eventos.
Se aplica: as informações contidas em este tópico aplica projetos no nível para a palavra 2010.Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.
Essa explicação passo a passo mostra as seguintes tarefas:
adicionando um controle de RichTextContentControl a um documento em tempo de execução.
Associando o controle de RichTextContentControl a dados de um serviço Web.
resposta ao evento de Entering de um controle de RichTextContentControl .
Observação |
---|
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações de Visual Studio. |
Pré-requisitos
Para completar este passo-a-passo, são necessários os seguintes componentes:
-
Uma edição do Visual Studio 2012 que inclui o Microsoft Office Developer Tools. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.110\).md).
- Word 2013 ou Word 2010.
Criando um novo projeto
A primeira etapa é criar um projeto do suplemento a palavra.
para criar um novo projeto
Crie um projeto do suplemento a palavra com o serviço de conteúdo de nome MTPS usando, Visual Basic ou C#.
Para obter mais informações, consulte Como: criar projetos do Office em Visual Studio.
O Visual Studio abre o arquivo de ThisAddIn.vb ou de ThisAddIn.cs e adiciona o projeto a Gerenciador de Soluções.
Adicionando um serviço da Web
Para essa explicação passo a passo, use um serviço Web chamado conteúdo do serviço MTPS.Esse serviço Web retorna informações de um artigo MSDN especificado na forma de cadeia de caracteres ou um texto sem formatação XML.Uma etapa posterior mostra como exibir informações retornado em um controle de conteúdo.
Para adicionar o conteúdo de serviço MTPS ao projeto
No menu Data, clique em Add New Data Source.
Em Assistente para Configuração de Fonte de Dados, clique em Serviço, e clique em Avançar.
Em o campo de Endereço , digite a seguinte URL:
http://services.msdn.microsoft.com/ContentServices/ContentService.asmx
Clique em Go.
Em o campo de Namespace , digite ContentService, e clique OK.
Em a caixa de diálogo de Adicione o assistente de referência , clique Concluir.
Adicionando um controle e uma associação de conteúdo a dados em tempo de execução
Em projetos de aplicativo, você adiciona e associa os controles em tempo de execução.Para essa explicação passo a passo, configurar o controle de conteúdo para recuperar dados de serviço Web quando um usuário clica no controle.
Para adicionar um controle de conteúdo e associar dados
Em a classe de ThisAddIn , declarar variáveis para o serviço MTPS de conteúdo, o controle de conteúdo, e a associação de dados.
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;
Adicione o seguinte método à classe de ThisAddIn .Este método cria um controle de conteúdo no início do documento ativo.
Private Sub AddRichTextControlAtRange() Dim currentDocument As Word.Document = Me.Application.ActiveDocument currentDocument.Paragraphs(1).Range.InsertParagraphBefore() Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument) 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 = Globals.Factory.GetVstoObject(currentDocument); richTextContentControl = extendedDocument.Controls.AddRichTextContentControl( currentDocument.Paragraphs[1].Range, "richTextContentControl"); richTextContentControl.PlaceholderText = "Click here to download MSDN Library information about content controls."; }
Adicione o seguinte método à classe de ThisAddIn .Este método inicializa os objetos necessários para criar e enviar uma solicitação para o serviço 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); }
Crie um manipulador de eventos para recuperar o documento da Biblioteca MSDN sobre controles de conteúdo quando um usuário clica em para dentro do controle de conteúdo e associar os dados ao controle de conteúdo.
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); }
Chamar os métodos de AddRichTextControlAtRange e de InitializeServiceObjects do método de ThisAddIn_Startup .Para desenvolvedores de C#, adicione um manipulador de eventos.
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 += richTextContentControl_Entering; }
testando o suplemento
Quando você abre palavra, o controle de RichTextContentControl aparece.O texto no controle altera quando você clica em ela.
para testar o suplemento
Pressione F5.
Clique dentro do controle de conteúdo.
A informação é baixada de serviço MTPS de conteúdo e exibido dentro do controle de conteúdo.