在处理之前不能使用我的物体

时间:2017-05-20 04:11:02

标签: vb.net

就像标题所说,我不能使用我的对象,如果我将它丢弃,我的意思是在我处理它之前,我不能使用它。这是我的代码

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

运行后,它会生成错误

  

参数无效。

在检查之后看看错误背后的原因是什么,我知道问题是处置。因为在我删除所有处理后,它工作正常,但另一个问题上升。

  

内存不足

我知道这个错误,因为我使用了太多内存。

我的问题是。

  

如何使用对象并处理它而不会出现该错误?

1 个答案:

答案 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}}