以Windows形式更新PDF而不会失去焦点

时间:2019-02-22 13:23:13

标签: c# pdf

我正在使用Visual Studio Community 2017中的Windows窗体应用程序开发PDF创建器。我正在使用MigraDoc生成PDF,它们由用户在文本框中插入的一系列数据直接创建。

用于插入和显示数据的页面是相同的,因为我想实时更新PDF文档预览。为了显示PDF,我使用的是在安装Adobe Reader之后从COM部分获得的axAcroPDF元素。

为了更新PDF文档,我编写了一个类,简单地介绍了新元素(我在文本框上使用Leave事件触发器来调用更新)并将新的PDF文件加载到axAcroPDF元素内:

axAcroPDF1.LoadFile(filename);

问题在于,每次我在一个文本框中插入新数据并触发离开事件时,就好像重新加载了整个表格,而我却失去了对正在编写的文本框的关注(插入的数据仍然保留,但焦点完全消失,书写光标没有保留)。如果我单击另一个文本框,或者使用选项卡移至下一个文本框,其他文本框也会发生这种情况。请注意,PDF已正确更新。有什么方法可以避免此问题并更新PDF部分,而不会失去对文本框的关注?是否还可以在这些文本框的changetext事件侦听器上执行此操作?

此处摘录了代码用法。在文本框上检测到changetext事件时,将调用updateText函数:

private void updateText(object sender, EventArgs e)
{
   updateDocument();
   axAcroPDF1.LoadFile(filename);
   TextBox s = (TextBox)sender;
   s.Focus();
}

0 个答案:

没有答案