就像标题所说,我不能使用我的对象,如果我将它丢弃,我的意思是在我处理它之前,我不能使用它。这是我的代码
Public Class Form1
Dim hasil(3) As Bitmap
Dim OneClickInsertGbr As New ArrayList
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
hasil(0) = New Bitmap("C:\Users\Robokidz\Google Drive\Tugas Akhir\Data Training\Foto Uang\1K\scan0001.jpg") 'This is my image
hasil(1) = New Bitmap("C:\Users\Robokidz\Google Drive\Tugas Akhir\Data Training\Foto Uang\1K\scan0001.jpg") 'This is my image
hasil(2) = New Bitmap("C:\Users\Robokidz\Google Drive\Tugas Akhir\Data Training\Foto Uang\1K\scan0002.jpg") 'This is my image
PictureBox1.Image = hasil(0)
hasil(0).Dispose()
hasil(1).Dispose()
hasil(2).Dispose()
End Sub
End Class
运行后,它会生成错误
参数无效。
在检查之后看看错误背后的原因是什么,我知道问题是处置。因为在我删除所有处理后,它工作正常,但另一个问题上升。
内存不足
我知道这个错误,因为我使用了太多内存。
我的问题是。
如何使用对象并处理它而不会出现该错误?
答案 0 :(得分:2)
您的想法是在完成使用后处置对象。如果您希望用户看到Image
中显示的PictureBox
,那么您显然还没有完成Image
,所以您不应该处置它。如果您稍后要将Image
中的PictureBox
替换为另一个Image
,那么您应该处置您不再显示的Private Sub SetPictureBox1Image(filePath As String)
If PictureBox1.Image IsNot Nothing Then
'Dispose an existing Image first.
PictureBox1.Image.Dispose()
End If
'Display the new Image.
PictureBox1.Image = Image.FromFile(filePath)
End Sub
,因为您现在已经完成了它。
以下是您需要做的事情的一个例子:
{{1}}