【发布时间】:2017-11-23 15:10:58
【问题描述】:
如何在 devexpress 中将 pdf 加载到 pdfViewer。我有以下代码将 pdf 从xtraGrid 加载到EditForm 但 pdfViewer 加载第一个记录 pdf 文件并保留它。当 EditForm 关闭时,如何重置 pdf?
//wHLDRWGTextEdit-下面代码中包含文件路径
private void ucFabLog_Load(object sender, EventArgs e)//ucFabLog is custom EditForm
{
try
{
FileStream stream = new FileStream(wHLDRWGTextEdit.Text, FileMode.Open);
pdfViewer1.LoadDocument(stream);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
}
}
我通过添加 pdfViewer1.Refresh(); 和 pdfViewer1.DetachStreamAfterLoadComplete = false; 尝试了以下操作,但仍然显示来自另一条记录的 PDF
private void ucFabLog_Load(object sender, EventArgs e) //ucFabLog is custom EditForm
{
try
{
FileStream stream = new FileStream(wHLDRWGTextEdit.Text, FileMode.Open);
pdfViewer1.DetachStreamAfterLoadComplete = false;
pdfViewer1.LoadDocument(stream);
pdfViewer1.Refresh();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
}
}
【问题讨论】:
-
我没有使用 DevExpress 的经验,但我猜这是因为
stream仍然打开?我没有看到你Closing或Disposing你的信息流。在using中包装您的信息流。也做了一个快速的谷歌,这段代码PdfViewerControl1.DocumentSource = null;可能会有所帮助。 -
@12seconds 当我在`pdfViewer1.LoadDocument(stream) 旁边添加
pdfViewer1.Dispose();时;`现在它不加载任何pdf,我可以将它放在哪里? -
Closing()和Dispose()应该是您完成stream后做的最后一件事。不管你有没有试过.DocumentSource = null;? -
@12seconds 奇怪的是,在第一个向我显示第一个 pdf 文件之后,相同的代码在按钮单击时有效,但在
Form_load事件上无效。
标签: c# winforms devexpress