WebBrowser

martedì 19 luglio 2005 - 15.16

Mandy Profilo | Newbie

Salve a tutti, mi sono appena registrata e battezzo subito il mio ingresso con un nuovo quesito:
In vb.net ho creato uno user control per la gestione di un wizard che come ultimo step va a creare un file xml con tutte le informazioni inserite e poi lo trasforma in un documento html completo di formattazione. Quindi visualizzo questo documento in un controllo AXWebBrowser, che altro non è che il buon veccho webbrowser di vb6. Il problema è questo: la prima volta lo carica e tutto ok, ma se torno indietro nel wizard e poi ricreo il documento rifacendo il .navigate2 dell'url non mi aggiorna il webbrowser.
Ho provato tutto:
- Ho provato a richiamare tutte le funzioni di refresh del WebBrowser .Refreshctl .Refresh .Refresh2 .Update
- Ho provato a cambiare il nome al file per ovviare al caso in cui si tenga una propria cache in memoria
- Ho provato a fargliene caricare prima un'altro, e poi il mio
- Ho provato ad impostargli a Nothing l'oggetto Document e poi a ricaricare il file
L'unico modo per far visualizzare la pagina aggiornata è cliccare sul webbrowser e poi premere il tasto F5. Ok mi sono detta, allora faccio sta zozzata e lo simulo da codice, dandogli il focus e richiamando la pressione del tasto F5. Ma fatto da codice non funzionaaaaa!!!
Qualche idea?
O su come richiamare la pressione di un tasto funzione (tante volte avessi toppato lì)
Oppure su come aggiornare l'oggetto o fare in modo che non si tenga in cache la pagina vecchia...oppure anche una dritta su un nuovo oggetto compatibile con .net che funzioni meglio...Help me please!!!
Grazie e Buon Lavoro!

Brainkiller Profilo | Guru

Ciao Mandy e benvenuta.
Allora come ben sai quel controllo incapsula l'engine di rendering di Internet Explorer, quindi è come se girasse Internet Explorer con tutti i problemi o bugs del caso.

E' probabile che sia un problema di Cache quindi comincerei a toccare le impostazioni sotto Strumenti->Opzioni Internet e poi Impostazioni sotto file Temporanei, prova a cambiare le varie impostazioni.

Peccato che la pagina non sia dinamica se no glisi poteva impostare un Expire Now in modo che IE non la tenesse in Cache.

Altra cosa che si può fare è mettere un Meta Refresh per fargli aggiornare la pagina ogni tot secondi ma non so se è ciò che desideri.

Si può anche provare a gabbare IE facendogli caricare prima una finta pagina e poi successivamente la tua appena creata.

Oppure si può provare a crearla utilizzando un nome diverso.

Sono un po' di cose che mi vengono in mente.
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Mandy Profilo | Newbie

Ciao e Grazie per la risposta!
Però purtroppo ho già tentato di fare tutte le cose che mi hai elencato...
Non riesco a capire perchè il refresh non funziona, comunque l'unica cosa che funziona è se premo a mano il tasto f5 dopo che ho ricreato la pagina...non sapresti dirmi come faccio a scatenare quest'evento da codice?
Ho provato a simularlo così
AxWebBrowser1.Focus()
System.Windows.Forms.SendKeys.Send("{F5}")
però non ha alcun effetto. Conosci per caso una api che faccia al caso mio?
Grazie ancora!


Brainkiller Profilo | Guru

Ciao,
prima ancora di leggere la tua soluzione dell'ultimo post mi era venuto in mente il SendKeys però se non funziona resto deluso anche io :( Correttamente hai posizionato il focus sul WebBrowser e poi hai lanciato il SendKeys, ma è strano che non funzioni.

Non saprei che altre soluzioni darti. Mi pare che le hai provate un po' tutte. API non ne conosco, ci sono quelle per inviare sequenze di tasti, ma sono già emulate dalla SendKeys :(

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

maurik Profilo | Junior Member

Mandy ciao sono Maurik
mi sono reso conto che abbiamo lo stesso problema. Io creo il mio web Browser all'interno di uno script facendo il document.write, funziona solo che ora ho la necessità di refreshare e lo fa solamente facendo aggiorna sul controllo.

Non so se hai risolto ma se lo hai fatto puoi aiutarmi??? contattami grazie
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5