OLE di Excel - NET componente aggiuntivo COM si comporta diversamente quando Excel è incorporato in un'applicazione
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.
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.