PDA

View Full Version : [VB.NET] Applicanzione contenente finestra word


canax
05-11-2009, 15:45
Ciao, in un pannello della mia applicatione dovrei iserire un finestra word, sapete come si fa? Esiste un elemento in VB.NET che corrisponde ad esso?
Grazie
Ciao!

MarcoGG
06-11-2009, 11:31
Il metodo forse più semplice in assoluto è il controllo WebBrowser, che può aprire un buon numero di documenti di vari formati, purchè ovviamente la relativa applicazione sia installata sul PC che esegue il programma :

WebBrowser1.Navigate("C:\Test.doc")

canax
06-11-2009, 12:09
Questo metodo lo conosco. Il probrlema é che in questo modo l'applicazione word che si apre all'interno del browser é limitata, per esempio manca il meno e altre toolbar che io avrei bisogno.

Ho trovato la possibilità di far partire un istanza di word in questo modo:

Dim winWord As New Microsoft.Office.Interop.Word.Application()
WinWord.Visible = True


Io vorrei però che questa finestra che si apre esternamente vada a finire dentro il mio form.
Non sapete come si fa?

MarcoGG
06-11-2009, 12:59
Ci sono diversi metodi per farlo, ma avrai bisogno di fare riferimento diretto ad alcune librerie API, ad esempio in questo modo :

> Dichiarazioni API necessarie :

Private Const WM_SYSCOMMAND As Integer = 274
Private Const SC_MAXIMIZE As Integer = 61488
Private Declare Auto Function SetParent Lib "user32.dll" (ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Integer
Private Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

> Apertura Word in Form :

Dim P As Process = Process.Start("winword.exe")
P.WaitForInputIdle()
SetParent(P.MainWindowHandle, Me.Handle)
SendMessage(P.MainWindowHandle, WM_SYSCOMMAND, SC_MAXIMIZE, 0)

;)