Winforms,如何使用线程更新pdf中的页面



我有一个Main.cs和一个Pdf.cs。My Main.cs有3个按钮,每次你点击每个按钮,它就会导航到pdf文件的页面。例如,您单击按钮1,将弹出一个新窗口,并在第1页显示pdf文件。如果你点击按钮2,它将显示一个新的pdf弹出窗口页面2,等等。

我的问题是,是否有一种方法,pdf文件将只打开1个pdf文件,每次用户单击按钮,它将只是更新/调用选定的页面?

下面是示例代码Main.cs:
public Main()
{
    InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
    ThreadStartSOP = new Thread(new ThreadStart(() => ThreadScreen(pageNumber)));
    if(ThreadStartSOP.IsAlive)
    {
        //Update the page
    }
    else
    {
        ThreadStartSOP.SetApartmentState(ApartmentState.STA);
        ThreadStartSOP.Start();
    }
}
private void ThreadScreen(int pageNumber)
{
    Application.Run(new pdf(pageNumber));
}

Pdf.cs

public pdf(int page)
{
    this.axAcroPDF1.src = @"c:example.pdf";
    this.axAcroPDF1.setCurrentPage(page);
}
public void UpdatePDFPage(int page)
{
    this.axAcroPDF1.setCurrentPage(page); //Not updating..
    //I tried creating delegate, then invoking the method to it 
    //and still no luck in updating the pdf pages..
}

我不知道如果Pdf.cs是一个形式-或其他东西;但基本上没有提到你启动的表单;通过对winform的引用,您可以从主表单中调用该表单上的方法。

像这样的东西应该可以达到目的

    Pdf pdfReference;
    private void dummyPage2()
    {
        if (pdfReference != null)
        pdfReference.UpdatePDFPage(2);
    }

    private void ThreadScreen(int pageNumber)
    {
        pdfReference = new Pdf(1);
        Application.Run(pdfReference);
    }

相关内容

  • 没有找到相关文章

最新更新