【发布时间】:2017-02-18 07:03:12
【问题描述】:
我有一个带有pdf阅读器的winform控制AxAcroPdf阅读器,事情是在我将pdf文档检索到控制之后,当我想关闭表单时,完成事件大约需要30秒,我一直搜索问题,事件将Dispose()事件放到控件中,但无法在适当的时间内关闭表单,总是需要30秒左右才能关闭表单...
这是我拥有控制权的表单中的代码...
Private Sub cargarPdf(ByRef nombre_Archivo)
Try
AxAcroPDF1.Visible = True
Dim con As SqlConnection = New SqlConnection(cadena)
Dim comando As SqlCommand = con.CreateCommand()
comando.CommandText = "SELECT file_stream FROM dbo.Tabla_archivos where name = @name"
comando.Parameters.AddWithValue("@name", nombre_Archivo)
con.Open()
Dim dr As SqlDataReader = comando.ExecuteReader(CommandBehavior.CloseConnection)
dr.Read()
Dim bufferSize As Integer = Convert.ToInt32(dr.GetBytes(0, 0, Nothing, 0, 0))
datos = New Byte(bufferSize - 1) {}
dr.GetBytes(0, 0, datos, 0, bufferSize)
dr.Close()
WriteBinaryFile("C:\Cobit\" + nombre_Archivo, datos)
AxAcroPDF1.src = "C:\Cobit\" + nombre_Archivo
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
这是基本形式的代码...
Private Sub BtnCerrar_Click(sender As Object, e As EventArgs) Handles Button1.Click
If NombreLbl.Text = "Vista Archivos de evidencia" Then
Try
Frm_vista_archivos_evidencia.AxAcroPDF1.Dispose()
Catch ex As Exception
End Try
End If
Me.Close()
End Sub
具有控件的表单是从 Frm_base 派生的表单
【问题讨论】:
-
我曾经遇到过这个问题,最后唯一对我有用的是在关闭它之前将读者的来源设置为不存在的文档,这似乎可以释放所有内容并允许读者关闭