OLE di Excel - NET componente aggiuntivo COM si comporta diversamente quando Excel è incorporato in un'applicazione

StackOverflow https://stackoverflow.com/questions/1510983

Domanda

Ho un componente aggiuntivo .NET (C #), che utilizza un COM Shim dll per caricare se stesso in Excel. Il componente aggiuntivo funziona bene senza alcun problema quando Excel viene eseguito normalmente. Il componente aggiuntivo visualizza la propria barra degli strumenti personalizzata in Excel che viene utilizzato per eseguire comandi diversi.

Quando ho incorporare Excel in un'altra applicazione (ad esempio DSOFramer, ecc), il componente aggiuntivo inizia a comportarsi in modo strano. Sembra che se disattivo un pulsante sulla sua barra degli strumenti, allora non c'è niente di nuovo attivata dopo l'impostazione della proprietà Visible. Inoltre, ho un po 'di "riferimento non impostato" errori perché l'oggetto Application :: La selezione è NULL che non accade mai quando Excel è in esecuzione normalmente. A volte ho anche ottenere gli errori di autorizzazione quando Application :: GetAddIns () metodo viene chiamato.

Non sono sicuro di ciò che sta accadendo qui e non riuscivo a trovare un articoli che spiega il comportamento di Excel Componenti aggiuntivi COM quando Excel è incorporato all'interno di altre applicazioni.

È stato utile?

Soluzione 2

Ho contattato Microsoft Professional per questo problema e ha scoperto che Microsoft ora scoraggia applicazioni office incorporamento. Mi è stato suggerito di essere arrestato l'incorporamento di Excel in applicazione o utilizzare solo Excel 2007 che ha un'interfaccia utente Ribbon. Secondo MS, l'interfaccia utente Ribbon non ha questi problemi.

Il problema con i CommandBars è che la negoziazione avviene solo durante l'OnConnection e nessun cambiamento può essere fatto successivamente.

Altri suggerimenti

Devo ammettere che non so molto di DSOFramer, ma ho fatto eseguire attraverso i seguenti elementi. Non so se questi aiutano a tutti.

testo del link

testo del link

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top