我有一个列表框中显示的文件列表。当我从列表框中选择一个文件时,我希望该文件加载到我的表单上的面板中。即如果它是一个word文档单词将在面板中打开,如果它是一个pdf阅读器将在面板中打开。
我可以使用外部加载文件
Dim ProcStart As New ProcessStartInfo
ProcStart.FileName = ListBox1.SelectedItem
Process.Start(ProcStart)
但是我不确定如何让它停靠在我的面板中。我试过了
Me.Panel1.Controls.Add(ProcStart)
但这显然是错误的,因为我无法添加进程作为控件。
我做了一些谷歌搜索,并试图这样做
<DllImport("user32.dll")>
Shared Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As UInteger
End Function
Private Sub ListBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
Dim proc As Process
Dim AppPath As String
AppPath = lstDocs & ListBox1.SelectedItem
proc = Process.Start(AppPath)
proc.WaitForInputIdle()
SetParent(proc.MainWindowHandle, Me.Panel1.Handle)
End Sub
但是应用程序这个词仍然在我的程序之外打开,而不是在面板中!
有任何想法吗?并感谢您的关注!