2017-02-13 77 views
0

我試圖在我的窗體中顯示一個pdf文件。在winforms中顯示嵌入的pdf文件C#

我用這個教程: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

您的代碼已按照您的要求完成。最有可能的 - 雖然從提供的代碼,它很難說。

但是,你可以嘗試,把一個面板,你想你的pdf顯示 - 假設其被稱爲panel1。

你需要這個表單中的

[DllImport("user32.dll")] 
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); 

,並更改代碼SI它運行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過程工作和終止..等

+0

我已經嘗試了上述,並在一個新的窗口中打開PDF的雜技演員裏德河 我有一個我想要它如何出現的例子: http://image.prntscr.com/image/888dace6a5ff4729828c0c5b8043b5a8.png – Kfir

+0

好的,但我不是在這個星球上爲你做這一切 - 我使用該代碼把膩子放到winform應用程序的標籤上,就像一個魅力.. – BugFinder

+0

當你說你把膩子放入標籤時,你是什麼意思? (Putty是一個SSH客戶端,不是)? – Kfir