Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
OLE di VB 6.0 ... in DOT NET??
martedì 18 settembre 2007 - 02.05
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
freesdraaa
Profilo
| Newbie
14
messaggi | Data Invio:
mar 18 set 2007 - 02:05
ciao,
vi ricordate che in vb 6.0 c'erano quegli oggetti che tu li ficcavi senza riguardo in un form, li legavi ad un filetto DOC, XLS, PPT o altro, e a runtime loro ti visualizzavano il contenuto dei filetto legato incastonando l'editor predefinito nel tuo form??
In DOT NET c'è qualcosa di simile?
L'esigenza mia è soltanto quella di visualizzare in una sorta di preview il contenuto di file DOC, XLS, PPT all'interno di un form VB. NET (o anche C#, non c'è problema!)
Qualcuno sa come fare, o qualche documentazione?
grazie mille
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mar 18 set 2007 - 10:36
>L'esigenza mia è soltanto quella di visualizzare in una sorta
>di preview il contenuto di file DOC, XLS, PPT all'interno di
>un form VB. NET (o anche C#, non c'è problema!)
La prima cosa che mi viene in mente è provare ad utilizzare un WebBrowser control e farlo puntare al file doc, xls. Secondo logica dovrebbe aprirlo all'interno come tu desideri.
Probabilmente Visual Studio 2008 con Vista porteranno novità in questo senso visto che in Vista c'è un nuovo meccanismo per la preview dei documenti.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
freesdraaa
Profilo
| Newbie
14
messaggi | Data Invio:
mar 18 set 2007 - 12:57
Grazie mille! farò qualche test con quel controllo e vediamo che succede ;-)
freesdraaa
Profilo
| Newbie
14
messaggi | Data Invio:
mer 19 set 2007 - 01:03
Ciao!
Allora... ho fatto un bel pò di analisi in merito.
Ho scoperto che l'oggetto WebBrowser (
http://msdn2.microsoft.com/it-it/library/system.windows.forms.webbrowser
(VS.80).aspx) intanto per cominciare sta solo dentro VB.NET 2005! io provavo ad usarlo dal 2003 ma mi ero confuso utilizzando un COM WebBrowser simile al WebBrowser del Framework 2.0 ma diverso nella sostanza...
quindi sono passato a C# 2005 e ho iniziato a lavorare con questo oggetto. Ho eseguito l'esempio postato nell'MSDN della Micosoft e ho visto che correttamente prende delle pagine html remote e te le stampa dentro il form: ottimo direi!
Quello che devo fare è visulizzare un bel file doc nel form, quindi ho provato banalmente a farlo puntare a file:///C:/prova.doc, invece che a
http://192.168.0.10/index.asp
...bhe, all'indirizzo web ci va tranquillamente, a quello locale che punta al file doc invece no, mi visualizza "Action cancelled"... se invece faccio puntare Internet Explorer a "file:///C:/prova.doc" mi parte word e me lo fa vedere, questo significa che il file c'è ed è raggiungibile al path "file:///C:/prova.doc", se poi clicco un'altra volta, mi dice proprio "the page cannot be displayed".
Ma la cosa più curiosa secondo me, è che se io metto il file "prova.doc" nello spazio web in modo che sia raggiungibile all'indirizzo "
http://192.168.0.10/prova.doc"
, e ci faccio puntare l'oggetto WebBrowser, lui funziona alla grande e mi visualizza il contenuto del file doc in un oggettino come il vecchio amato OLE, cioè mi dà l'editor word dentro il form di C#... cioè il risultato cercato!
...riassumendo, se metto il file prova.doc in uno spazio web, e ci faccio puntare WebBrowser, è ok, funziona benissimo, se invece sto "prova.doc" lo metto in locale, non va...
Il WebBrowser cmq ha un metodo DocumentStream che promette di ricevere uno Stream e di visualizzarlo nel form: apparte che non sono riuscito a infilare un "prova.doc" dentro un oggetto Stream (al massimo FileStream, ma non lo vuole, vuole per forza uno Stream) ma mi chiedevo: una volta riuscito ad infilare "prova.doc" dentro un oggetto Stream, e passato al DocumentStream, WebBrowser sarà cosi intelligente da capire che quello è un file DOC e va trattato come tale??
Mi date una mano per favore? sono già passato dal Vb. NET 2003 al 2005 e a C#!! mi sono studiato mezza MDSN e ho provato 100 cose diverse, sono alla frutta... idee ne avete please?
freesdraaa
Profilo
| Newbie
14
messaggi | Data Invio:
mer 19 set 2007 - 01:03
Ciao!
Allora... ho fatto un bel pò di analisi in merito.
Ho scoperto che l'oggetto WebBrowser (
http://msdn2.microsoft.com/it-it/library/system.windows.forms.webbrowser
(VS.80).aspx) intanto per cominciare sta solo dentro VB.NET 2005! io provavo ad usarlo dal 2003 ma mi ero confuso utilizzando un COM WebBrowser simile al WebBrowser del Framework 2.0 ma diverso nella sostanza...
quindi sono passato a C# 2005 e ho iniziato a lavorare con questo oggetto. Ho eseguito l'esempio postato nell'MSDN della Micosoft e ho visto che correttamente prende delle pagine html remote e te le stampa dentro il form: ottimo direi!
Quello che devo fare è visulizzare un bel file doc nel form, quindi ho provato banalmente a farlo puntare a file:///C:/prova.doc, invece che a
http://192.168.0.10/index.asp
...bhe, all'indirizzo web ci va tranquillamente, a quello locale che punta al file doc invece no, mi visualizza "Action cancelled"... se invece faccio puntare Internet Explorer a "file:///C:/prova.doc" mi parte word e me lo fa vedere, questo significa che il file c'è ed è raggiungibile al path "file:///C:/prova.doc", se poi clicco un'altra volta, mi dice proprio "the page cannot be displayed".
Ma la cosa più curiosa secondo me, è che se io metto il file "prova.doc" nello spazio web in modo che sia raggiungibile all'indirizzo "
http://192.168.0.10/prova.doc"
, e ci faccio puntare l'oggetto WebBrowser, lui funziona alla grande e mi visualizza il contenuto del file doc in un oggettino come il vecchio amato OLE, cioè mi dà l'editor word dentro il form di C#... cioè il risultato cercato!
...riassumendo, se metto il file prova.doc in uno spazio web, e ci faccio puntare WebBrowser, è ok, funziona benissimo, se invece sto "prova.doc" lo metto in locale, non va...
Il WebBrowser cmq ha un metodo DocumentStream che promette di ricevere uno Stream e di visualizzarlo nel form: apparte che non sono riuscito a infilare un "prova.doc" dentro un oggetto Stream (al massimo FileStream, ma non lo vuole, vuole per forza uno Stream) ma mi chiedevo: una volta riuscito ad infilare "prova.doc" dentro un oggetto Stream, e passato al DocumentStream, WebBrowser sarà cosi intelligente da capire che quello è un file DOC e va trattato come tale??
Mi date una mano per favore? sono già passato dal Vb. NET 2003 al 2005 e a C#!! mi sono studiato mezza MDSN e ho provato 100 cose diverse, sono alla frutta... idee ne avete please?
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
mer 19 set 2007 - 09:03
Ho appena fatto una prova facendo così:
WebBrowser1.Navigate("C:\prova.doc")
Funziona perfettamente
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
freesdraaa
Profilo
| Newbie
14
messaggi | Data Invio:
gio 20 set 2007 - 01:05
ehhe hai ragione!
che idiota... io avevo seguito l'esempio preso da sito della Microsoft che era fatto per i siti web e quindi indirizzi http, credo che a me non funzionasse perchè in automatico concatenava all'indirizzo c:\prova.doc, la stringa http:// quindi veniva http://c:\prova.doc e quindi non andava.
grazie per il vostro prezioso aiuto, spero di non averne più bisogno ma se sarà cosi, posterò ancora qui ;-) grazie!
freesdraaa
Profilo
| Newbie
14
messaggi | Data Invio:
gio 20 set 2007 - 01:44
Ops...ecco che si presenta subito la situzione di chiedere qualcosa ;-)
Sto usando l'oggetto webBrowser1 e lo faccio puntare al file c:\prova.doc; in questo modo visualizzo all'interno del form, il contenuto del documento. Vorrei che se un utente clicca col tasto destro del mouse (o anche col sinistro) sull'oggetto webBrowser1, si renda disponibile un diverso menu, non quello di word standard.
Allora ho associato un contextMenu all'oggetto webBrowser1 ma il menu custom viene attivato soltanto quando clicco col destro ma il file c:\prova.doc non è visualizzato; io vorrei far succedere "qualcosa" quando l'utente clicca sull'oggetto webBrowser1 quando però sta caricando il c:\prova.doc.
E' possibile farlo?
Ho visto che c'è webBrowser1.Document.ActiveElement che dà la proprietà Enabled; l'ho impostata a False, però a runtime mi da un errore che dice che l'oggetto non è referenziato... strano, perchè è lo steso oggetto (webBrowser1) che utilizzo con "webBrowser1.Navigate ("c:\prova.doc")" e poi ho visto che sempre sotto webBrowser1.Document. ci sono alcune voci col simbolo dell'EventHandler tipo "Click o ContextMenuShowing".
Si possono utilizzare quegli eventi e far fare al programma altre cose piuttosto che visualizzare il menu tipico di word quando si clicca col tasto destro del mouse? In tal caso dovrei capire come si sfruttano gli EventHandler in C# perchè finora li ho usati solo in Vb .NET
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 20 set 2007 - 08:43
>E' possibile farlo?
Che io sappia no. WebBrowser agisce come un container quindi se apri una pagina web e clicchi il destro esce il menù di Internet Explorer, se carichi un file Word esce il menù di Word e così via.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
gio 20 set 2007 - 08:47
Concordo con De Giacomi.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
freesdraaa
Profilo
| Newbie
14
messaggi | Data Invio:
gio 20 set 2007 - 16:59
OK, allora non si può fare, mi è rimasta la curiosità di capire perchè mi da errore "oggetto non referenziato" se cerco di accedere a
webBrowser1.Document.ActiveElement
mentre inveec se faccio webBrowser1.Navigate mi funziona e non dice "oggetto non referenziato" forse non è referenziato webBrowser1.Document?
grazie
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !