Partilhar via


Demonstra Passo a passo: Alterando o painel de ações, de acordo com o contexto de usuário

Importante as informações estabelecidas neste tópico sobre o Microsoft Word são apresentadas exclusivamente para o benefício e o uso de pessoas e organizações que estão localizados fora dos Estados Unidos e em seus territórios, ou quem está usando ou o desenvolvimento de programas executados em produtos do Microsoft Word que foram licenciados pela Microsoft antes de janeiro de 2010, quando o Microsoft removido uma implementação da funcionalidade específica, relacionada a XML personalizado a partir do Microsoft Word. Essas informações sobre o Microsoft Word não podem ser lidas ou usadas por pessoas ou organizações nos Estados Unidos ou em suas regiões que estão usando ou o desenvolvimento de programas executados em produtos do Microsoft Word que foram licenciados pela Microsoft após 10 de janeiro de 2010; Esses produtos não se comportar os mesmos produtos licenciados antes dessa data ou adquirido e licenciado para uso fora dos Estados Unidos.

Esta explicação passo a passo demonstra como responder a XMLNode eventos. Como um usuário move o cursor através de um documento, os controles no painel actions ocultados ou tornam-se visíveis.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento para Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

This walkthrough illustrates the following tasks:

  • Adicionar controles ao painel Ações.

  • Quando o aplicativo é aberto, mostrando o painel de ações.

  • Ocultando e exibindo a controles no painel de ações, com base nas ações do usuário em nós XML.

ObservaçãoObservaçã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 do Visual Studio.

Pré-requisitos

You need the following components to complete this walkthrough:

-

Uma edição do Visual Studio 2010 que inclua as ferramentas de desenvolvedor do Microsoft Office. Para obter mais informações, consulte [Configurando um computador para desenvolver soluções do Office](bb398242\(v=vs.100\).md).
  • Word 2007 ou Word 2010.

Creating the Project

A primeira etapa é criar um projeto de documento do Word.

Para criar um novo projeto.

  • Crie um projeto de documento do Word com o nome do meu painel de ações dinâmico. No assistente, selecione criar um novo documento. For more information, see Como: Criar projetos do Office em Visual Studio.

    Abre o novo documento do Word no designer de Visual Studio e adiciona o projeto do meu painel de ações dinâmico para Solution Explorer.

Criando um esquema de mapa para o documento.

Para criar os nós XML, arraste os elementos de um esquema XML ao documento. Primeiro, crie um arquivo de esquema, em seguida, crie um documento que corresponde ao esquema e, em seguida, mapear os elementos no documento.

Para criar o esquema XML

  1. Selecione o Meu painel de ações dinâmico projeto em Solution Explorer.

  2. On the Project menu, click Add New Item.

    O Add New Item caixa de diálogo aparece.

  3. No modelos de painel, selecione Esquema XML.

  4. Nome do esquema ActionsPaneSample.xsd e clique em Add.

  5. Em Solution Explorer, ActionsPaneSample.xsd com o botão direito e, em seguida, clique em Abrir com.

  6. No Abrir com caixa de diálogo, selecione O Editor de XMLe, em seguida, clique em OK.

  7. Substitua o texto no editor 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. Save your project.

Adicionar texto e XML ao documento

O documento para esta explicação passo a passo é na forma de um memorando. Adicionar texto ao documento e, em seguida, mapear elementos XML para os locais do documento.

Para adicionar texto ao documento

  1. Em Solution Explorer, com o botão direito ThisDocument.cs ou ThisDocument. vbe em seguida, clique em View Designer.

  2. Adicione o seguinte texto no documento do Word.

    MEMORANDO

    Para:

    De:

    Assunto:

    A tabela a seguir lista as informações de contatos solicitadas:

    Name

    Address

    City

    State

    Postal Code

    Janeth Esteves

    Avenida de 20-507 Oriental, Apt. 2A

    Seattle

    WA

    98122

Em seguida, mapear elementos XML para o texto do memorando. Um XMLNode controle é criado para cada elemento XML que você mapa. O XMLNode controle é chamado acrescentando os nomes de elementos pai e filho para a palavra Node. Por exemplo, se você mapear o Insert o elemento do esquema acima, ele é denominado SampleInsertNode. Para obter mais informações sobre controles, consulte Itens de host e a visão geral sobre controles de Host.

Para anexar o esquema para o seu documento.

  1. Na faixa de opções, clique no Developer guia.

    ObservaçãoObservação

    Se o Developer guia não estiver visível, você deve primeiro mostrá-lo. For more information, see Como: Mostrar guia desenvolvedor na faixa de opções.

  2. No XML de grupo, clique em esquema.

    O modelos e suplementos abre a caixa de diálogo.

  3. No modelos e suplementos caixa de diálogo, clique no Esquema XML guia e clique Adicionar esquema.

  4. Procure o esquema de ActionsPaneSample.xsd que você criou anteriormente, que está localizado no diretório do projeto, e clique em Abrir.

  5. Clique em OK na Configurações do esquema caixa de diálogo.

  6. Clique em OK para fechar a modelos e suplementos caixa de diálogo.

    O Estrutura XML se abre o painel de tarefas.

Para mapear elementos XML para seu documento.

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

  2. Clique em Aplicar todo o documento quando solicitado.

  3. Selecione as três linhas de texto para, de, e assuntoe clique no Inserir elemento o Estrutura XML painel de tarefas.

  4. Coloque o cursor após para:, pressione a tecla TAB duas vezes e clique na MemoTo elemento para inseri-lo.

  5. Coloque o cursor após em:, pressione a tecla TAB duas vezes e clique o MemoFrom elemento.

  6. Coloque o cursor após Assunto:, pressione a tecla TAB uma vez e clique na MemoSubject elemento.

  7. Selecione a tabela para que a tabela inteira é realçada e clique no tabela elemento para aplicá-lo.

    As marcas XML aparecem dentro das células da tabela.

  8. Limpar o Mostrar marcas XML no documento caixa de seleção.

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

  10. Selecione o Ignorar conteúdo misto caixa de seleção e, em seguida, clique em OK.

  11. Fechar o Estrutura XML painel de tarefas.

Adicionar controles ao painel Ações

Para criar o layout dos controles no painel de ações, você pode usar o designer de um controle denominado o controle de painel de ações, que é basicamente o mesmo como um controle de usuário. Você pode arrastar outros controles como botões e caixas de texto, para o painel de ações de controle e organização-los. Para alterar o painel de ações, de acordo com o contexto de usuário, você adicionar um controle de painel de ações para cada contexto de design e mostra e ocultá-los conforme apropriado.

Esta explicação passo a passo usa três controles do painel de ações. O primeiro controle 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 adicioná-lo ao documento. O segundo controle de painel de ações contém um botão que abre o Propriedades da tabela caixa de diálogo. O terceiro controle de painel de ações contém uma caixa de seleção que mostra todos os controles no painel de ações, independentemente de onde o cursor no documento.

Para adicionar um controle de painel de ações

  1. Selecione o Meu painel de ações dinâmico projeto em Solution Explorer.

  2. On the Project menu, click Add New Item.

  3. No Add New Item caixa de diálogo, selecione Controle de painel de ações, o nome AddTextControle clique em Add.

  4. Alterar o tamanho a propriedade do controle de painel de ações para 170, 135.

Para adicionar controles Windows Forms para o primeiro controle do painel de ações

  1. Do Windows Forms guia da Toolbox, arraste um rótulo o controle para AddTextControle alterar o texto propriedade para para:.

  2. Adicionar um caixa de texto o controle para AddTextControl e altere as propriedades a seguir.

    Property

    Value

    Name

    toBox

    Size

    110, 20

  3. Adicionar um segundo rótulo o controle para AddTextControle alterar o texto propriedade para de:.

  4. Adicionar um segundo caixa de texto o controle para AddTextControl e altere as propriedades a seguir.

    Property

    Value

    Name

    fromBox

    Size

    110, 20

  5. Adicionar um terceiro rótulo o controle para AddTextControl sob a caixa de texto anterior e alterar o texto propriedade para Assunto:.

  6. Adicionar um terceiro Textbox o controle para AddTextControl próximo ao anterior rotular e alterar as propriedades a seguir.

    Property

    Value

    Name

    subjectBox

    Multiline

    True

    Size

    110, 40

  7. Redimensionar o subjectBox caixa de texto para permitir várias linhas.

  8. Adicionar um botão o controle para AddTextControl e altere as propriedades a seguir.

    Property

    Value

    Name

    insertText

    Text

    Insert

Para criar o segundo controle de painel de ações

  1. Adicione um segundo controle de painel de ações ao seu projeto e denomine- ShowPropertiesControl.

  2. Alterar o tamanho a propriedade do controle de painel de ações para 170, 50.

  3. Do Windows Forms guia da Toolbox, arraste um botão o controle para ShowPropertiesControl e alterar as propriedades a seguintes.

    Property

    Value

    Name

    tableProperties

    Text

    Propriedades da tabela

    Enabled

    False

    Size

    100, 23

  4. Para C#, altere o modificadores a propriedade do botão para interno.

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

  1. Adicione um terceiro controle do painel de ações ao seu projeto e denomine- ShowAllControl.

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

  3. Do Windows Forms guia da Toolbox, adicionar um GroupBox o controle para ShowAllControl e alterar o texto propriedade para o meu painel de ações.

  4. Adicionar um caixa de seleção o controle para ShowAllControl na parte superior do grupo de caixa e alterar as propriedades a seguir.

    Property

    Value

    Name

    showCheck

    Text

    Mostrar todos os controles

  5. Para C#, altere o modificadores propriedade da caixa de seleção para interno.

Adicionando código para responder a contexto de usuário

Agora você pode escrever código para mostrar o painel de ações e adicionar e remover controles de painel de ações de acordo com o local do cursor no documento. O código vai além de eventos de manipuladores da XMLNode controles.

Para adicionar código aos eventos de controle do XMLNode

  1. Em Solution Explorer, com o botão direito ThisDocument. vb ou ThisDocument.cse em seguida, clique em Exibir código.

  2. Criar uma referência de variável para cada controle do 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 Startup o manipulador de eventos de ThisDocument, escrever o código a seguir para adicionar o ShowAllControl controlar e mostrar o painel de ações.

    Me.ActionsPane.Controls.Add(showAll)
    showCheck = showAll.showCheck
    
    this.ActionsPane.Controls.Add(showAll);
    
    ObservaçãoObservação

    A ordem em que você adicionar controles ao painel de ações determina seu posicionamento. Se você tiver um controle que será sempre visível na parte superior do painel de ações, você deve adicioná-lo primeiro. Ordem também é dependente da StackOrder a propriedade do painel de ações. For more information, see Como: Gerenciar o Layout de controle nos painéis de ações.

  4. Adicione o seguinte código para o ContextEnter o manipulador de eventos da SampleInsertNode de controle.

    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. Adicione o seguinte código para o ContextLeave o manipulador de eventos da SampleInsertNode o controle para ocultar o controle depois que o usuário moveu o cursor fora deste nó XML.

    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. Adicione o seguinte código para o ContextEnter o manipulador de eventos da SampleTableNode de controle.

    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. Adicione o seguinte código para o ContextLeave o manipulador de eventos da SampleTableNode o controle para ocultar o controle depois que o usuário moveu o cursor fora deste nó XML.

    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. C#, você deve adicionar manipuladores de eventos para o XMLNode controles. Você pode colocar esse código de Startup o manipulador de eventos de ThisDocument. Para obter informações sobre como criar manipuladores de eventos, consulte Como: Criar manipuladores de eventos em projetos do 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);
    

Checkpoint

Salve o projeto e verificar se os controles do painel de ações alteram como você mover o cursor no documento.

Para testar seu projeto.

  1. Pressione F5 para executar seu projeto.

  2. Move o ponto de inserção para a palavra para e verifique o addText controle de painel de ações está visível no painel de ações.

  3. Mover sua inserção, aponte para dentro da tabela e verifique o showProperties controle de painel de ações está visível no painel de ações.

  4. Move o ponto de inserção para a palavra Memorando e verifique se nem o addText nem showProperties controles de painel de ações são visíveis no painel de ações.

Adicionando código para responder a eventos de controle no painel de ações

Até agora, os controles no painel de ações não fazer nada. A última etapa é escrever código para mostrar todos os controles, inserir texto e mostrar o Propriedades da tabela caixa de diálogo.

Para mostrar todos os controles no painel de ações

  1. Adicione o seguinte código 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. C#, você deve adicionar um manipulador de eventos para o checkbox de controle. Você pode colocar esse código de Startup o manipulador de eventos de ThisDocument.

    showAll.showCheck.CheckStateChanged += new EventHandler(showCheck_CheckStateChanged);
    

Para inserir texto quando o botão Inserir é clicado.

  1. Em Solution Explorer, com o botão direito AddTextControl.vb ou AddTextControl.cse em seguida, clique em Exibir código.

  2. No Click o manipulador de eventos da insertText botão, escrever 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. C#, você deve adicionar um manipulador de eventos do botão. Você pode colocar esse código de AddTextControl construtor 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 Solution Explorer, com o botão direito ShowPropertiesControl.vb ou ShowPropertiesControl.cse em seguida, clique em Exibir código.

  2. Adicione o seguinte código para o Click o manipulador de eventos da tableProperties botão.

    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. C#, você deve adicionar um manipulador de eventos do botão. Você pode colocar esse código de ShowPropertiesControl construtor após a chamada para InitializeComponent.

    public ShowPropertiesControl()
    {
        InitializeComponent();
        this.tableProperties.Click += new System.EventHandler(this.tableProperties_Click);
    }
    

Testing the Application

Agora você pode testar ainda mais o seu documento para verificar a funcionalidade dos controles do painel de ações.

Para testar seu documento.

  1. Pressione F5 para executar seu projeto.

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

  3. Mova o cursor para a seção do documento que contém o para, de, e assunto linhas e confirmar que o addText controles aparecem no painel de ações.

  4. Insira o texto na para, de, e assunto caixas de texto no painel de ações e clique Inserir.

  5. Mova o cursor para a tabela e confirmar que o showProperties controle aparece no painel de ações.

  6. Clique o Propriedades da tabela botão e confirmar que o Propriedades da tabela abre a caixa de diálogo.

  7. Clique o Mostrar tudo caixa de seleção e confirme se todos os controles no painel de ações estão visíveis.

  8. Mova o cursor fora da tabela e confirmar que o Propriedades da tabela botão fica desabilitado.

Próximas etapas

Esta explicação passo a passo mostra noções básicas de alterar o painel de ações com base no contexto do usuário. Here are some tasks that might come next:

Consulte também

Tarefas

Como: Adicionar um painel de ações para documentos do Word

Como: Adicionar um painel de ações para pastas de trabalho do Excel

Como: Gerenciar o Layout de controle nos painéis de ações

Conceitos

Controle de XMLNodes

Outros recursos

Visão geral painel Ações