axAcroPDF行为不一致

时间:2016-10-20 00:27:58

标签: c# axacropdf

我有一个pdf查看器,为了示例,它从列表框中显示所选的文件名。 它是一个简单的表单,带有一个axAcroPDF列表框和文本框,用于确认正确的文件路径。 代码如下,文件已放在Debug文件夹中的pdfs文件夹中:

using System;
using System.Windows.Forms;

namespace pdf_viewer
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory + "pdfs\\" + listBox1.SelectedItem.ToString();
            textBox1.Text = path;
            InitializeAdobe(path);
        }

        private void InitializeAdobe(string filePath)
        {

                axAcroPDF1.LoadFile(filePath);
                axAcroPDF1.src = filePath;
                axAcroPDF1.setShowToolbar(false);
                axAcroPDF1.setView("Fit");
                axAcroPDF1.setLayoutMode("SinglePage");
                axAcroPDF1.Show();

        }
    }
}

一切正常,只有几个问题:

  • 第一次循环浏览它在窗口中正确显示的文件但是如果你回到某个条目,第二次它会显示右边的工具栏,尽管代码中禁用了该工具栏。工具栏占据了窗口的大部分。
  • 当你关闭窗户时,需要花费很长时间才能关闭,这表明我正在进行大量的家务管理。关于为什么会发生这种情况的任何线索。

除此之外:

  • 我是否需要在代码中同时使用.LoadFile和.src语句,因为它们都是孤立的,但是对另一个更好。似乎没有改变上述问题。此方法已从另一个Stack Overflow问题中解除。

由于

PS自从最初发布以来,我试图在webBrowser窗口中显示,但是第二次选择条目时显示的工具栏面板完全相同。 代码如下:

webBrowser1.Url = new Uri(path);

1 个答案:

答案 0 :(得分:0)

很长一段时间后重访了此问题,并在此处找到了答案 Disable Adobe Reader toolbar from my ActiveX

它似乎可以在axAcroPDF和Webbrowser窗口中工作。 对于axAcropdf,在不显示工具栏的情况下显示pdf的代码是(使用问题示例):

this.axAcroPDF1.src = filePath + "#toolbar=0";
            this.axAcroPDF1.setView("Fit");
            this.axAcroPDF1.setLayoutMode("SinglePage");
            this.axAcroPDF1.Show();

对于Web浏览器窗口

InitializeAdobe(path);    
webBrowser1.Url = new Uri(path + "#toolbar=0");