Home Page Home Page Tips & Tricks Come visualizzare delle pagine Web in una Windows Forms

Come visualizzare delle pagine Web in una Windows Forms


Che fine ha fatto il componente Microsoft Web Browser ?


Chi viene dal mondo di Visual Basic 6.0 si ricorderà sicuramente di un componente OCX chiamato Microsoft Web Browser che ci permetteva di integrare funzionalità Web all'interno della nostra Form, cioè in parole povere ci creava un container di Internet Explorer sulla Form e da lì potevamo visualizzare praticamente pagine e siti Web.
Il componente era un OCX e quindi utilizzava l'architettura COM. Con l'introduzione di .NET tutti questi componenti sono praticamente scomparsi sostituiti da quelli Managed come DataGrid o simili.

Mancando però in Visual Studio .NET un componente che svolgesse la stessa funziona come possiamo risolvere ? Si può risolvere anche se non in un modo bellissimo perchè bisogna ricorrere all'interoperabilità e fare comunque riferimento al vecchio componente unmanaged con il risultato che quando si va a fare un deploy di una soluzione andiamo a distribuire una applicazione .NET (tipicamente managed) con un componente OCX/COM (unmanaged). Niente di male sicuramente ma se ci fosse stato un omologo .NET sarebbe stato meglio. Sarà presente infatti in Visual Studio Whidbey, ma per ora arrangiamoci in diverso modo.

Aggiungere il componente Web Browser


L'operazione è abbastanza semplice, è sufficiente aprire l'ambiente di sviluppo (Visual Studio .NET), spostarsi sulla Toolbox di sinistra (quella con la lista di tutti gli oggetti), fare click con il tasto destro e selezionare Add/Remove Items.... Comparirà una finestrella come la seguente, selezionate la linguetta COM Components e andate alla ricerca del componente Microsoft Web Browser:

Il componente Microsoft Web Browser
Il componente Microsoft Web Browser


Dopo averlo selezionato date Ok, e vedrete apparire sulla sinistra il nuovo controllo con la tipica icona del mondo:

Il componente è ora disponibile
Il componente è ora disponibile


Selezionatelo e disegnate un rettangolo sulla Form in questo modo:



Automaticamente verranno aggiunte nel Solution Explorer delle Referenze a librerie necessarie per il funzionamento del componente:



Fate un doppio click ora sulla Form e nell'evento Load aggiungete il seguente codice:

C#
Codice .NET n°1
Object f=null;
axWebBrowser1.Navigate("www.dotnethell.it",ref f,ref f,ref f,ref f);


VB.NET
Codice .NET n°2
AxWebBrowser1.Navigate("www.dotnethell.it", "", "", "", "")


Lanciate con F5 e questo sarà il risultato:




Per chi utilizza invece i Reporting Services


Ad integrazione mostro un esempio di come è possibile integrare la reportistica dei SQL Reporting Services all'interno di una Windows Forms.
Il procedimento è lo stesso è sufficiente assegnare al primo parametro del metodo .Navigate() il link diretto al Report e voilà:



Per chi non sa che cosa sono i Reporting Services può vedere un'ampia e dettagliata introduzione qui:
http://www.dotnethell.it/articles/article.aspx?ArticleID=116 
Copyright © dotNetHell.it 2002-2022
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5