我试图在表单中显示pdf文件。
我使用了本教程:https://www.youtube.com/watch?v=a59LvC6BOuk
但没有任何反应,它会打开一个新的无法访问的空白Adobe Acrobat窗口。
这是我的代码:
OpenFileDialog op1 = new OpenFileDialog();
if (op1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
pdfRead.src = op1.FileName;
}
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
您的代码已按您的要求完成。最有可能的 - 虽然从提供的代码中,很难说出来......
但是你可以试试,把一个面板放在你希望你的pdf显示的地方 - 假设它叫做panel1。
您需要以表格形式
[DllImport("user32.dll")]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
并且要更改您的代码,它会运行该pdf的过程以将其吸入您的应用程序
if (op1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Process p = Process.Start("op1.FileName");
Thread.Sleep(500); // Allow the process to open it's window
SetParent(p.MainWindowHandle, panel1.Handle);
}
这段代码并不完美 - 它不允许很多东西......比如你应该隐藏面板并根据pdf进程是否工作和终止显示它等等。