Pergunta

Estou desenvolvendo meu primeiro suplemento Word 2007, e eu adicionei um OfficeRibbon ao meu projeto. Em um manipulador de clique de botão, eu gostaria de uma referência, quer ao Word.Document ou Word.Application atual.

Eu estou tentando obter uma referência através da propriedade OfficeRibbon.Context, que diz a documentação deve se referir ao objeto Application atual. No entanto, é sempre null.

Alguém sabe qualquer

a) se há algo que eu preciso fazer para que OfficeRibbon.Context aparecer correctamente preenchido?
b) se há alguma outra maneira que eu posso obter uma referência para o aplicativo Word ou documento do Word ativa?

Notas:

  • Eu estou usando VS2008 SP1

  • Os olhares fita como ele tem bem inicializado: A fita renderiza corretamente no Word; I pode pisar o depurador através tanto o construtor e os membros ONLOAD; clique manipuladores botão Executar corretamente.

  • Aqui está a ajuda on-line para esta propriedade ;

OfficeRibbon.Context Propriedade

C#
public Object Context { get; internal set; }

Um objecto que representa a janela Inspector ou instância de aplicação que está associado com esse objecto OfficeRibbon.

Observações

No Outlook, esta propriedade refere-se à janela Inspector em que este OfficeRibbon é exibido.

No Excel, Word e PowerPoint, essa propriedade retorna a instância do aplicativo em que este OfficeRibbon é exibida.

Foi útil?

Solução

Eu também encontrei este problema criando um suplemento Excel 2007 usando VS2008 SP1. A solução que eu usei foi para armazenar o aplicativo em uma propriedade internal static na classe AddIn principal e, em seguida, fazer referência a ela no manipulador de eventos na minha fita:

public partial class ThisAddIn
{
    internal static Application Context { get; private set; }

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        Context = Application;
    }
    ...
}

public partial class MyRibbon : OfficeRibbon
{
    private void button1_Click(object sender, RibbonControlEventArgs e)
    {
        DoStuffWithApplication(ThisAddIn.Context);
    }
    ...
}

Outras dicas

Tente referenciando o documento com:

Globals.ThisDocument.[some item]

MSDN Referência

Comece a partir de:

Globals.ThisAddIn.Application

Enquanto eu não sei muito sobre mudanças no Office modelo de objeto do Word 2007, aqui é a minha explicação usando o conhecimento VBA.

A aplicação é um objeto disponível globalmente. Além disso, Application.ActiveDocument deverá fazê-lo lidar com o documento atual.

Especulando: Como você está tentando adicionar a fita

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top