Você está offline; aguardando reconexão

COMO: Manipular Eventos para os Componente do Office 2003 na Web no Visual Studio .NET

Sumário
Este artigo descreve como modificar os conteúdos adicionais de classe para Microsoft Office 2003 Web Components. Ele então descreve como regenerar os conteúdos adicionais para que você possa gerenciar seus eventos em um aplicativo que você cria pelo Microsoft Visual Studio .NET.

Como padrão, os conteúdos adicionais que o Microsoft Visual Studio .NET gera não permite que você lide com eventos para os seguintes componentes da Web para Office 2003:
  • Quadro
  • Planilha
  • Tabela Dinâmica
Para lidar com eventos para esses componentes, você pode modificar o código de origem para os conteúdos adicionais de class e, em seguida, recompilar o código.

Segundo Plano

Microsoft Visual Studio .NET gera uma classe escuta de evento que implementa uma interface evento. Essa classe escuta de evento é passada para o Componente do Office na Web (OWC). Em seguida, o OWC chama o métodoQueryInterface para a interface IDispatch, em vez de chamar a interface event. No entanto, a interface IDispatch para a classe gerada não contém identificadores de despacho (DISPIDs) para os eventos.

Para resolver esse problema, você pode marcar a classe gerada usando o valor ClassInterfaceType.None para forçar a interoperabilidade IDispatch para a interface e não para a classe. A interface IDispatch contém os DISPIDs do evento.

Etapas para Modificar e Reconstruir os Conteúdos Adicionais de Classe

  1. Iniciar o prompt de comando do Visual Studio .NET.
  2. No prompt de comando, execute estas etapas:
    1. Crie um novo diretório denominado owc11 e, em seguida, mude para aquele diretório:
      md c:\owc11

      cd c:\owc11
    2. Gere o código da origem em C# para os conteúdos adicionais do Microsoft Windows Forms:
      aximp "c:\program files\common files\microsoft shared\web components\11\owc11.dll" /source
    3. Exclua a montagem gerada AxOWC11.dll:
      del c:\owc11\axowc11.dll
  3. Em um editor de texto (como o Bloco de Notas), abra o C:\OWC11\AxOWC11.cs.
  4. Adicione [ToolboxItem(true)] para classe gerada para o componente Quadro, o componente Planilha e componente Tabela Dinâmica, como nos exemplos a seguir:

    Componente de Quadro
     [System.ComponentModel.ToolboxItem(true)]  public class AxChartSpace : System.Windows.Forms.AxHost {   	...  } 
    Componente de Planilha
     [System.ComponentModel.ToolboxItem(true)]  public class AxSpreadsheet : System.Windows.Forms.AxHost { 	 ...  } 
    Componente de Tabela Dinâmica
     [System.ComponentModel.ToolboxItem(true)]  public class AxPivotTable : System.Windows.Forms.AxHost { 	 ...  } 
  5. Marque as classes de evento como ClassInterfaceType.None, conforme os exemplos a seguir:

    Componente de Quadro
     [System.Runtime.InteropServices.ClassInterface(    System.Runtime.InteropServices.ClassInterfaceType.None)]   public class AxChartSpaceEventMulticaster : OWC11.IChartEvents {  	 ...   } 
    Componente de Planilha
     [System.Runtime.InteropServices.ClassInterface(    System.Runtime.InteropServices.ClassInterfaceType.None)]  public class AxSpreadsheetEventMulticaster : OWC11.ISpreadsheetEventSink {  	 ...  } 
    Componente de Tabela Dinâmica
     [System.Runtime.InteropServices.ClassInterface(    System.Runtime.InteropServices.ClassInterfaceType.None)]   public class AxPivotTableEventMulticaster : OWC11.IPivotControlEvents {  	 ...   } 
  6. Salve as mudanças em AxOWC11.cs.
  7. No prompt de comando do Visual Studio .NET, execute estas etapas:
    1. Adicione C:\Arquivos de Programas\Microsoft.NET\Primary Interop Assemblies para sua variável de ambiente LIB:
      set lib=c:\program files\microsoft.net\primary interop assemblies;%path%
    2. Copie Microsoft.Office.Interop.OWC11.dll e MSComCtl.dll do GAC em que os Office 2003 Primary Interop Assemblies estão instalados:
      copy %windir%\assembly\GAC\Microsoft.Office.Interop.Owc11\11.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Owc11.dll

      copy %windir%\assembly\GAC\mscomctl\10.0.4504.0__31bf3856ad364e35\mscomctl.dll
    3. Compile o arquivo de origem, AxOWC11.cs:
      csc /t:library /r:microsoft.office.interop.owc11.dll /r:adodb.dll /r:msdatasrc.dll /r:mscomctl.dll axowc11.cs
      Nota Você pode receber a seguinte mensagem de erro CS0108:
      A palavra-chave nova é exigida
      Você pode ignorar esse erro.
  8. Inicie o Microsoft Visual Studio .NET.
  9. Adicione o novo compilado AxOWC11.dll à Caixa de ferramentas:
    1. No menu Ferramentas, clique em Caixa de FerramentasPersonalizar Caixa de Ferramentas (em Visual Studio .NET 2002), ou clique em Adicionar/Remover Itens da Caixa de Ferramentas (no Visual Studio .NET 2003) e, em seguida, clique na guia Componentes de Moldura do .NET .
    2. Na guia Componentes de Moldura do .NET, clique em Navegar.
    3. Na caixa de textoNome do arquivo, digite c:\owc11\axowc11.dll. Clique em Abrir.
    4. Clique em OK para fechar a caixa de diálogo Personalizar Caixa de Ferramentas.
Quando você cria um novo projeto do Microsoft Visual Basic .NET ou um novo projeto do Microsoft Visual C# .NET, note que a lista de controles na guia Geral na Caixa de Ferramentas contém os controles AxChartSpace, AxPivotTable e AxSpreadsheet. Agora você pode adicionar esses componentes às suas formas.

Referências
Para obter informações adicionais sobre eventos de gerenciamento para os Componentes da Web do Office XP com o Visual Studio .NET, clique nos seguintes números para visualizar os artigos na Base de Conhecimento da Microsoft:
328275 COMO: Manipular Eventos para os Componente do Office na Web no Visual Studio .NET
webchart pivot table spread sheet excel owc
Propriedades

ID do Artigo: 823982 - Última Revisão: 01/16/2004 18:32:16 - Revisão: 1.2

  • Microsoft Office 2003 Web Components
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbpia kbofficewebspread kbofficewebpivot kbofficewebchart kbhowto KB823982
Comentários
icrosoft.com/ms.js" '="">