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

  • Projetos de nível de documento

Versão do Microsoft Office

  • Word 2007

  • Word 2003

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

  1. Selecionar o projeto de meu painel de ações dinâmico no Gerenciador de Soluções.

  2. No menu Project, clique em Add New Item.

    O Adicionar Novo Item caixa de diálogo é exibida.

  3. No painel modelos, Selecionar Esquema XML.

  4. Nomeie o esquema ActionsPaneSample.xsd e clique em Adicionar.

  5. Em Gerenciador de Soluções, clique com o botão direito do mouse ActionsPaneSample.xsd e clique em Abrir com.

  6. Na caixa de diálogo OAbrir com com, Selecionar Editor de XMLe clique em OK de .

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

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument.cs ou ThisDocument.vbe clique em Exibir Designer.

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

  1. Abra o Modelos e Adicionar-Caixa de Caixa de diálogo ins.Para fazer isso no Word 2007:

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

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

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

  2. Na caixa de diálogo do Add-ins E Modelos, clique na guia de esquema XML e clique em Adicionar esquema.

  3. Procurar o esquema ActionsPaneSample.xsd criado anteriormente, que está localizado no seu Diretório do Projeto e clique em Abrir.

  4. Clique em OK na caixa de diálogo Definições de esquema.

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

  1. Clique no elemento de exemplo no painel de tarefas Estrutura XML.

  2. Clique em Aplicar ao documento inteiro quando solicitado.

  3. Selecionar as três linhas de texto , deE assuntoe clique no elemento de inserir no painel de tarefas Estrutura XML.

  4. Coloque o cursor após para:, Pressionarionar a tecla Guia duas vezes e clique no elemento de De MemoTo para Inserir-lo.

  5. Coloque o cursor após de:, Pressionarionar a tecla Guia duas vezes e clique no elemento de De MemoFrom.

  6. Coloque o cursor após assunto:, Pressionarionar a tecla Guia uma vez e clique no elemento de De MemoSubject.

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

  8. Desmarque o XML Mostrar marcas no documento Caixa de Marcar.

  9. Clique em Opções de XML na parte inferior do painel de tarefas do Estrutura XML.

  10. Selecionar Ignorar misturadas conteúdo Caixa de Marcar e clique em OK.

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

  1. Selecionar o projeto de meu painel de ações dinâmico no Gerenciador de Soluções.

  2. No menu Project, clique em Add New Item.

  3. No Adicionar Novo Item caixa de diálogo, Selecionar De controle do painel de ações, nomeá-la AddTextControle clique em Adicionar.

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

  1. 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:.

  2. Adicionar um controle do Caixa de Texto a AddTextControl e alterar as propriedades a seguir.

    Propriedade

    Value (Valor)

    Nome

    toBox

    Size (Tamanho)

    110, 20

  3. Adicionar um segundo Controle do Rótulo a AddTextControle alterar a propriedade de Text a de:.

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

  5. Adicionar um terceiro Controle do Rótulo a AddTextControl sob a caixa de texto anterior e alterar a propriedade de Text como assunto :.

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

  7. Redimensione a caixa de texto SubjectBox para habilitar Múltiplo linhas.

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

  1. Adicionar um segundo controle de painel de ações ao seu projeto e Nome ele ShowPropertiesControl.

  2. Alterar Propriedade de de tamanho do Controlarar de painel de ações para 170, 50.

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

  4. Para o C#, Alterar Modificadores propriedade do botão para interno.

Para criar o terceiro Controlarar de painel de ações

  1. Adicionar um painel de ações terceiro controle para seu projeto e denomine ShowAllControl.

  2. Alterar a propriedade de De tamanho do Controlarar de painel de ações para 170, 75.

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

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

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

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse ThisDocument.vb ou ThisDocument.cse clique em Exibir Code.

  2. 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();
    
  3. 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.

  4. 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);
        }
    }
    
  5. 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);
        }
    }
    
  6. 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;
    }
    
  7. 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;
    }
    
  8. 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

  1. Pressionarionar F5 para executar seu projeto.

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

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

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

  1. 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);
        }
    }
    
  2. 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

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse AddTextControl.vb ou AddTextControl.cse clique em Exibir Code.

  2. 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 = "";
    }
    
  3. 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

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse ShowPropertiesControl.vb ou ShowPropertiesControl.cse clique em Exibir Code.

  2. 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);
    }
    
  3. 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

  1. Pressionarionar F5 para executar seu projeto.

  2. Confirme se o painel de ações é visível.

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

  4. Enter texto o , DeE Assunto caixas de texto no painel de ações e clique em Inserir.

  5. Mover o cursor para a tabela e confirme que o Controlarar de showProperties aparece no painel de ações.

  6. Clique no botão de De propriedades da tabela e confirmar que a caixa de diálogo de propriedades da tabela se abre.

  7. Clique em Mostrar tudo Caixa de Marcar e confirme que todos os controles no painel de ações são Visível.

  8. 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:

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

Conceitos

Visão geral painel Ações

Controlarar de XMLNodes