在winforms C#中显示嵌入式pdf文件

时间:2017-02-13 15:27:34

标签: c# pdf

我试图在表单中显示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;
        }

我该怎么做才能解决这个问题?

1 个答案:

答案 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进程是否工作和终止显示它等等。