Vi è mai capitato di dover o meglio, di voler includere nelle vostre applicazioni documenti word compilati a run-time? Ma certo. Peccato pero' che con i PIA di office obblighiamo l' utente a dover utilizzare due eseguibili. Il nostro programma e nel mio caso, word.exe.
La prima soluzione è quella di includere in una windows form il classico controllo WebBrowser e aprire in questo controllo il documento che vogliamo visualizzare. Molto semplice e veloce :
if (File.Exists(this.Documento))
{
Uri indirizzo = new Uri(this.Documento);
this.Navigatore.Url = indirizzo;
this.Navigatore.Refresh (WebBrowserRefreshOption.Completely);
}
Purtroppo pero' questo controllo non consente la piena gestione di word, quindi diventa un po' complicato nascondere ToolBar e varie Opzioni di word.
La seconda soluzione l' ho trovata questa mattina leggendo questa KB: link che fornisce un ottimo controllo, ActiveX scritto in C++ che funge benissimo da contenitore OLE. In questo caso il codice deve abbondantemente aumentare ma abbiamo il controllo delle seguenti caratteristiche :
- WindowProc, MessageLoop, MessageFilter and WindowFocus
- Saving, toolbar e quant' altro.
A voi la scelta.