Demonstra Passo a passo: Alterar o painel de ações de acordo com para o contexto de usuário
Se aplica a |
---|
As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e as versões do Microsoft Office. Tipo de Projeto
Versão do Microsoft Office
For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto. |
Esta explicação passo a passo demonstra como responder a eventos de XMLNode.Enquanto um usuário se move o cursor em um documento, os controles no painel de ações estão ocultos ou tornam-se Visível.
Essa explicação passo a passo ilustra as seguintes tarefas:
Adicionar controles ao painel de ações.
Mostrando o painel de ações quando o aplicativo é aberto.
Ocultando e mostrando controles no painel de ações com base em ações do usuário em nós XML.
Observação: |
---|
Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de 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 do Visual Studio. |
Pré-requisitos
Para completar este passo a passo, são necessários os seguintes componentes:
Ferramentas do Visual Studio para o Office (um componente opcional do O Visual Studio 2008 Professional e Visual Studio Team System).
Microsoft Office Word 2003.
Observação: |
---|
Você também pode executar esta explicação passo a passo usando o Word 2007.No entanto, alguns das instruções presumem que você está usando os menus no Word 2003. |
Ferramentas do Visual Studio para o Office é instalado por padrão com as versões listadas do Visual Studio.Para Marcar se ele está instalado, Marcar Instalando o Visual Studio Tools para Office.
Criando o projeto
A Primeiro etapa é criar um projeto de documento do Word.
Para criar um novo projeto
Criar um projeto de documento do Word com o nome meu painel de ações dinâmico.No assistente, Selecionar Criar um documento novo.For more information, see Como: Criar o Visual Studio Tools para projetos do Office.
O Visual Studio abre o novo documento do Word no designer e adiciona o projeto meu painel de ações dinâmica para Gerenciador de Soluções.
Criando um esquema para mapear para o documento
Para criar os nós XML, arraste elementos de um esquema XML para o documento.Primeiro crie um arquivo de esquema, e criar um documento que corresponde ao esquema e, em seguida, mapear os elementos para o documento.
Para criar o esquema XML
Selecionar o projeto de meu painel de ações dinâmico no Gerenciador de Soluções.
No menu Project, clique em Add New Item.
O Adicionar Novo Item caixa de diálogo é exibida.
No painel modelos, Selecionar Esquema XML.
Nomeie o esquema ActionsPaneSample.xsd e clique em Adicionar.
Em Gerenciador de Soluções, clique com o botão direito do mouse ActionsPaneSample.xsd e clique em Abrir com.
Na caixa de diálogo OAbrir com com, Selecionar Editor de XMLe clique em OK de .
Substituir o texto no editor de XML com o seguinte texto.
<?xml version="1.0" encoding="utf-8" ?> <xs:schema targetNamespace="https://schemas.microsoft.com/vsto/samples" elementFormDefault="qualified" xmlns="https://schemas.microsoft.com/vsto/samples" xmlns:mstns="https://schemas.microsoft.com/vsto/samples" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Sample" type="SampleType"></xs:element> <xs:complexType name="SampleType"> <xs:all> <xs:element name="Insert" type="InsertType" minOccurs="0" maxOccurs="1" /> <xs:element name="Table" type="xs:string" minOccurs="0" maxOccurs="1" /> </xs:all> </xs:complexType> <xs:complexType name="InsertType"> <xs:sequence> <xs:element name="MemoTo" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="MemoFrom" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="MemoSubject" type="xs:string" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> </xs:schema>
Salve seu projeto.
Adicionando texto e XML o documento
O documento para esta explicação passo a passo é na Formulárioa de um memorando.Adicionar texto ao documento e, em seguida, mapear elementos XML para locais no documento.
Para adicionar texto a seu documento
Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument.cs ou ThisDocument.vbe clique em Exibir Designer.
Adicionar o seguinte texto para seu documento do Word.
MEMORANDO
Para:
De:
Assunto:
A tabela a seguir lista as informações de contato solicitado:
Nome
Endereço
Cidade
Estado
CEP
Nancy Davolio
507-dia 20 avenida E., apt. 2A
Seattle
WA
98122
Avançar, mapear elementos XML para o texto o memorando.Um Controlarar de XMLNode é criado para cada elemento XML que você mapear.O Controlarar de XMLNode é denominado anexando nomes de elementos pai e filho para a palavra Node.Por exemplo, se você mapear o elemento Insert de o esquema acima, ele é denominado SampleInsertNode.Para obter mais informações sobre controles, consulte Itens de host e Visão geral sobre controles de host.
Anexar o esquema ao documento
Abra o Modelos e Adicionar-Caixa de Caixa de diálogo ins.Para fazer isso no Word 2007:
Na faixa de opções, clique na guia de De desenvolvedor.
Observação: Se a Guia do desenvolvedor não estiver visível, você primeiro deve mostrá-lo.For more information, see Como: Mostrar a guia Desenvolvedor na Faixa de Opções.
No AAgruparar de De XML, clique em Esquema.
Modelos e Adicionar-caixa de diálogo ins é aberta.
Para abrir o Modelos e Adicionar-caixa de diálogo de ins no Word 2003:
No menu Ferramentas, aponte para Ferramentas do Microsoft Office Worde, em seguida, clique em Modelos e Adicionar-ins.
Modelos e Adicionar-caixa de diálogo ins é aberta.
Observação: Se Ferramentas do Microsoft Office Word não está disponível no menu ferramentas, clique no documento para que ele foco.For more information, see Menus do Office no ambiente do Visual Studio.
Na caixa de diálogo do Add-ins E Modelos, clique na guia de esquema XML e clique em Adicionar esquema.
Procurar o esquema ActionsPaneSample.xsd criado anteriormente, que está localizado no seu Diretório do Projeto e clique em Abrir.
Clique em OK na caixa de diálogo Definições de esquema.
Clique em OK para fechar a Modelos e a caixa de diálogo de Adicionar-ins.
O painel de tarefas de estrutura XML é aberto.
Para mapear elementos XML para o seu documento
Clique no elemento de exemplo no painel de tarefas Estrutura XML.
Clique em Aplicar ao documento inteiro quando solicitado.
Selecionar as três linhas de texto , deE assuntoe clique no elemento de inserir no painel de tarefas Estrutura XML.
Coloque o cursor após para:, Pressionarionar a tecla Guia duas vezes e clique no elemento de De MemoTo para Inserir-lo.
Coloque o cursor após de:, Pressionarionar a tecla Guia duas vezes e clique no elemento de De MemoFrom.
Coloque o cursor após assunto:, Pressionarionar a tecla Guia uma vez e clique no elemento de De MemoSubject.
Selecionar a tabela para que a tabela inteira está realçada e clique no elemento de Table para Aplicar-lo.
As marcas XML Aparecerr dentro de células da tabela.
Desmarque o XML Mostrar marcas no documento Caixa de Marcar.
Clique em Opções de XML na parte inferior do painel de tarefas do Estrutura XML.
Selecionar Ignorar misturadas conteúdo Caixa de Marcar e clique em OK.
Fechar o painel de tarefas de estrutura XML.
Adicionando controles para o painel de ações
Para criar o layout dos controles no painel de ações, você usar o designer de um controle chamado o controle de painel de ações, que é basicamente o mesmo que um controle de usuário.Você pode arrastar outros controles, como botões e caixas de texto, para o painel de ações controlam e organização-las.Para alterar o painel de ações de acordo com contexto de usuário, você adiciona e Design um painel de ações Controlarar para cada contexto e, em seguida, mostrar e ocultá-los conforme apropriado.
Esta explicação passo a passo usa os três controles de painel de ações.O primeiro Controlarar do painel de ações contém três caixas de texto e um botão para que os usuários podem inserir dados e Adicionar-lo para o documento.O segundo Controlarar de painel de ações contém um botão que abre a caixa de diálogo de propriedades da tabela.O terceiro controle de painel de ações contém um Caixa de Marcar que mostra Tudo controles no painel de ações, independentemente de onde o cursor no documento.
Para adicionar um Controlarar de painel de ações
Selecionar o projeto de meu painel de ações dinâmico no Gerenciador de Soluções.
No menu Project, clique em Add New Item.
No Adicionar Novo Item caixa de diálogo, Selecionar De controle do painel de ações, nomeá-la AddTextControle clique em Adicionar.
Alterar a propriedade de De tamanho do Controlarar de painel de ações para 170, 135.
Para adicionar controles de Windows Forms ao primeiro controle do painel de ações
Na guia Windows Forms de De caixa de ferramentas, arraste um controle do Rótulo A AddTextControl e alterar a propriedade de Text a para:.
Adicionar um controle do Caixa de Texto a AddTextControl e alterar as propriedades a seguir.
Propriedade
Value (Valor)
Nome
toBox
Size (Tamanho)
110, 20
Adicionar um segundo Controle do Rótulo a AddTextControle alterar a propriedade de Text a de:.
Adicionar um segundo Controle do Caixa de Texto a AddTextControl e alterar as propriedades a seguir.
Propriedade
Value (Valor)
Nome
fromBox
Size (Tamanho)
110, 20
Adicionar um terceiro Controle do Rótulo a AddTextControl sob a caixa de texto anterior e alterar a propriedade de Text como assunto :.
Adicione um terceiro Caixa de texto controle AddTextControl Avançar ao rótulo anterior e alterar as seguintes propriedades.
Propriedade
Value (Valor)
Nome
subjectBox
Multiline (de múltiplas linhas)
True
Size (Tamanho)
110, 40
Redimensione a caixa de texto SubjectBox para habilitar Múltiplo linhas.
Adicionar um controle do Botão a AddTextControl e alterar as propriedades a seguir.
Propriedade
Value (Valor)
Nome
insertText
Texto
Inserir
Para criar o segundo Controlarar de painel de ações
Adicionar um segundo controle de painel de ações ao seu projeto e Nome ele ShowPropertiesControl.
Alterar Propriedade de de tamanho do Controlarar de painel de ações para 170, 50.
Na guia Windows Forms de De caixa de ferramentas, arraste um controle do Botão a ShowPropertiesControl e alterar as propriedades a seguintes.
Propriedade
Value (Valor)
Nome
tableProperties
Texto
Propriedades da tabela
Enabled
Falso
Size (Tamanho)
100, 23
Para o C#, Alterar Modificadores propriedade do botão para interno.
Para criar o terceiro Controlarar de painel de ações
Adicionar um painel de ações terceiro controle para seu projeto e denomine ShowAllControl.
Alterar a propriedade de De tamanho do Controlarar de painel de ações para 170, 75.
Na guia Windows Forms de De caixa de ferramentas, adicionar um controle de GroupBox a ShowAllControl e alterar a propriedade de Texto para meu painel de ações.
Adicionar um controle de De caixa de seleção a ShowAllControl na parte superior da Caixa de AAgruparar e alterar as seguintes propriedades.
Propriedade
Value (Valor)
Nome
showCheck
Texto
Mostrar Tudo controles
Para o C#, alterar a Modificadores propriedade o Caixa de Marcar para interno.
Adicionando código para responder a contexto de usuário
Agora você pode Gravar código para mostrar o painel de ações e adicionar e remover controles de painel de ações de acordo com para o local do cursor no documento.O código do evento vai manipuladores dos controles XMLNode.
Para adicionar código a eventos de Controlarar de XMLNode
Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument.vb ou ThisDocument.cse clique em Exibir Code.
Criar uma referência variável para cada Controlarar de painel de ações na seção declarações de ThisDocument.
Dim addText As New AddTextControl Dim showProperties As New ShowPropertiesControl Dim showAll As New ShowAllControl Friend WithEvents showCheck As System.Windows.Forms.CheckBox
private AddTextControl addText = new AddTextControl(); private ShowPropertiesControl showProperties = new ShowPropertiesControl(); private ShowAllControl showAll = new ShowAllControl();
No manipulador de eventos Startup de ThisDocument, Gravar o seguinte código para adicionar o Controlarar de ShowAllControl e mostrar o painel de ações.
Me.ActionsPane.Controls.Add(showAll) showCheck = showAll.showCheck
this.ActionsPane.Controls.Add(showAll);
Observação: A ordem em que você adicionar controles ao painel de ações determina seu posicionamento.Se você tiver um Controlarar que sempre estará visível na parte superior do painel de ações, você deve Adicionar-lo primeiro.Ordem depende também o Propriedade StackOrder do painel de ações.For more information, see Como: Gerenciar o layout do Controlarar em painéis de ações.
Adicionar o código a seguir ao manipulador de eventos do Controlarar ContextEnterSampleInsertNode.
Private Sub SampleInsertNode_ContextEnter(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleInsertNode.ContextEnter If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Add(addText) Me.ActionsPane.Controls.Remove(showProperties) End If End Sub
private void SampleInsertNode_ContextEnter(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Add(addText); this.ActionsPane.Controls.Remove(showProperties); } }
Adicionar o código a seguir ao manipulador de eventos do Controlarar ContextLeave para ocultar o Controlarar depois que o usuário moveu o cursor fora deste nó XML SampleInsertNode.
Private Sub SampleInsertNode_ContextLeave(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleInsertNode.ContextLeave If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Remove(addText) End If End Sub
private void SampleInsertNode_ContextLeave(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Remove(addText); } }
Adicionar o código a seguir ao manipulador de eventos do Controlarar ContextEnterSampleTableNode.
Private Sub SampleTableNode_ContextEnter(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleTableNode.ContextEnter If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Remove(addText) Me.ActionsPane.Controls.Add(showProperties) End If showProperties.tableProperties.Enabled = True End Sub
private void SampleTableNode_ContextEnter(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Remove(addText); this.ActionsPane.Controls.Add(showProperties); } showProperties.tableProperties.Enabled = true; }
Adicionar o código a seguir ao manipulador de eventos do Controlarar ContextLeave para ocultar o Controlarar depois que o usuário moveu o cursor fora deste nó XML SampleTableNode.
Private Sub SampleTableNode_ContextLeave(ByVal sender As Object, _ ByVal e As Microsoft.Office.Tools.Word.ContextChangeEventArgs) _ Handles SampleTableNode.ContextLeave If showAll.showCheck.Checked = False Then Me.ActionsPane.Controls.Remove(showProperties) End If showProperties.tableProperties.Enabled = False End Sub
private void SampleTableNode_ContextLeave(object sender, Microsoft.Office.Tools.Word.ContextChangeEventArgs e) { if (showAll.showCheck.Checked == false) { this.ActionsPane.Controls.Remove(showProperties); } showProperties.tableProperties.Enabled = false; }
Em C#, você deve adicionar manipuladores de eventos para os controles de XMLNode.Você pode colocar esse código no manipulador de eventos Startup de ThisDocument.Para obter informações sobre como criar manipuladores de eventos, consulte Como: Criar manipuladores de eventos no Visual Studio Tools for Office.
this.SampleInsertNode.ContextEnter += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleInsertNode_ContextEnter); this.SampleInsertNode.ContextLeave += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleInsertNode_ContextLeave); this.SampleTableNode.ContextEnter += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleTableNode_ContextEnter); this.SampleTableNode.ContextLeave += new Microsoft.Office.Tools.Word. ContextChangeEventHandler(SampleTableNode_ContextLeave);
Ponto de Verificação
Salvar o projeto e verifique se que o painel de ações controla Alterar como mover o cursor no documento.
Para testar seu projeto
Pressionarionar F5 para executar seu projeto.
Mover sua inserção aponte para a palavra A e verifique se o Controlarar do painel de ações addText está visível no painel de ações.
Mover sua inserção aponte para dentro da tabela e verifique se o Controlarar do painel de ações showProperties está visível no painel de ações.
Mover sua inserção aponte para a palavra MEMORANDO e verifique se não o addText nem os controles do painel de ações showProperties Visível no painel de ações.
Adicionando código para responder a eventos de Controlarar no painel de ações
Até agora, os controles no painel de ações não os faça nada.Último etapa é Gravar código para mostrar Tudo controles, inserir texto e mostrar a caixa de diálogo de propriedades da tabela.
Para mostrar Tudo controles no painel de ações
Adicionar o código a seguir para ThisDocument.
Private Sub showCheck_CheckStateChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles showCheck.CheckStateChanged If showAll.showCheck.Checked = True Then Me.ActionsPane.Controls.Add(addText) Me.ActionsPane.Controls.Add(showProperties) Else Me.ActionsPane.Controls.Remove(addText) Me.ActionsPane.Controls.Remove(showProperties) End If End Sub
private void showCheck_CheckStateChanged(object sender, EventArgs e) { if (showAll.showCheck.Checked) { this.ActionsPane.Controls.Add(addText); this.ActionsPane.Controls.Add(showProperties); } else { this.ActionsPane.Controls.Remove(addText); this.ActionsPane.Controls.Remove(showProperties); } }
Em C#, você deve adicionar um manipulador de eventos para o Controlarar de checkbox.Você pode colocar esse código no manipulador de eventos Startup de ThisDocument.
showAll.showCheck.CheckStateChanged += new EventHandler(showCheck_CheckStateChanged);
Para inserir texto quando o botão Inserir é clicado
Em Gerenciador de Soluções, clique com o botão direito do mouse AddTextControl.vb ou AddTextControl.cse clique em Exibir Code.
No manipulador de eventos do botão Click , insertText Gravar o código a seguir.
Private Sub insertText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles insertText.Click With Globals.ThisDocument .InsertMemoFromNode.Text = Me.fromBox.Text .InsertMemoToNode.Text = Me.toBox.Text .InsertMemoSubjectNode.Text = Me.subjectBox.Text End With ' Clear the text boxes. Me.fromBox.Text = "" Me.toBox.Text = "" Me.subjectBox.Text = "" End Sub
private void insertText_Click(object sender, System.EventArgs e) { Globals.ThisDocument.InsertMemoFromNode.Text = this.fromBox.Text; Globals.ThisDocument.InsertMemoToNode.Text = this.toBox.Text; Globals.ThisDocument.InsertMemoSubjectNode.Text = this.subjectBox.Text; // Clear the text boxes. this.fromBox.Text = ""; this.toBox.Text = ""; this.subjectBox.Text = ""; }
Em C#, você deve adicionar um manipulador de eventos para o botão.Você pode colocar esse código no construtor AddTextControl após a chamada para InitializeComponent.
public AddTextControl() { InitializeComponent(); this.insertText.Click += new System.EventHandler(this.insertText_Click); }
Para mostrar a caixa de diálogo Propriedades da tabela
Em Gerenciador de Soluções, clique com o botão direito do mouse ShowPropertiesControl.vb ou ShowPropertiesControl.cse clique em Exibir Code.
Adicionar o código a seguir ao manipulador de eventos do botão ClicktableProperties.
Private Sub tableProperties_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles tableProperties.Click Globals.ThisDocument.Application.Dialogs( _ Word.WdWordDialog.wdDialogTableProperties).Show() End Sub
private void tableProperties_Click(object sender, System.EventArgs e) { object timeout = 0; Globals.ThisDocument.Application.Dialogs[ Microsoft.Office.Interop.Word.WdWordDialog.wdDialogTableProperties] .Show(ref timeout); }
Em C#, você deve adicionar um manipulador de eventos para o botão.Você pode colocar esse código no construtor ShowPropertiesControl após a chamada para InitializeComponent.
public ShowPropertiesControl() { InitializeComponent(); this.tableProperties.Click += new System.EventHandler(this.tableProperties_Click); }
Testando o aplicativo
Agora você pode testar ainda mais seu documento para verificar a funcionalidade dos controles do painel de ações.
Para testar seu documento
Pressionarionar F5 para executar seu projeto.
Confirme se o painel de ações é visível.
Mover o cursor para a seção do documento que contém o A, Dee Assunto linhas e confirme que os controles de addText Aparecerr no painel de ações.
Enter texto o , DeE Assunto caixas de texto no painel de ações e clique em Inserir.
Mover o cursor para a tabela e confirme que o Controlarar de showProperties aparece no painel de ações.
Clique no botão de De propriedades da tabela e confirmar que a caixa de diálogo de propriedades da tabela se abre.
Clique em Mostrar tudo Caixa de Marcar e confirme que todos os controles no painel de ações são Visível.
Mover o cursor fora da tabela e confirme que o botão de De propriedades da tabela de fica Desativado.
Próximas etapas
Esta explicação passo a passo mostra as noções básicas de alterar o painel de ações com base no contexto de usuário.Aqui estão algumas tarefas que podem vie em seguida:
Implantar o projeto.For more information, see Como: Implantar soluções do Office (sistema de 2003).
Ligação de dados a controles no Word.For more information, see Demonstra Passo a passo: Vincular dados a controles em um painel de ações do Word.
Ligação de dados a controles no Excel.For more information, see Demonstra Passo a passo: Vincular dados a controles em um painel de ações do Excel.
Consulte também
Tarefas
Como: Adicionar um painel de ações a documentos do Word
Como: Adicionar um painel de ações a pastas de trabalho do Excel
Como: Gerenciar o layout do Controlarar em painéis de ações