Imports Leadtools.WinForms
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.Drawing
Public Sub RasterPictureBox_AutoDisposeImage(ByVal viewer As RasterPictureBox)
    ' Load two image2
    Dim codecs As RasterCodecs = New RasterCodecs()
    Dim file1 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp")
    Dim file2 As String = Path.Combine(LEAD_VARS.ImagesDir, "Image2.cmp")
    Dim image1 As RasterImage = codecs.Load(file1)
    Dim image2 As RasterImage = codecs.Load(file2)
    ' Make sure the AutoDisposeImage property of the viewer is set to true
    viewer.AutoDisposeImage = True
    ' Set the first image into the viewer
    viewer.Image = image1
    ' Now set the second image into the viewer (this disposes the first image since the AutoDisposeImage property is true)
    viewer.Image = image2
    ' Try to access the first image, it generates a NullReferenceException exception since the image has been disposed
    MessageBox.Show("Try to access the first image, it generates a NullReferenceException exception since the image has been disposed.")
    Try
        Dim width As Integer = image1.Width
        MessageBox.Show(String.Format("Width is {0} pixels", width))
    Catch ex As NullReferenceException
        MessageBox.Show(ex.Message)
    End Try
    ' Set the image to null (will dispose the second image as well)
    viewer.Image = Nothing
    ' Now re-load the two images
    image1 = codecs.Load(file1)
    image2 = codecs.Load(file2)
    ' Make sure the AutoDisposeImage property of the viewer is set to false
    viewer.AutoDisposeImage = False
    ' Set the first image into the viewer
    viewer.Image = image1
    ' Now set the second image into the viewer (this will not disposes the first image since the AutoDisposeImage property is false)
    viewer.Image = image2
    ' Try to access the first image, it should work fine this time
    Try
        Dim width As Integer = image1.Width
        MessageBox.Show(String.Format("Width is {0} pixels", width))
    Catch ex As NullReferenceException
        MessageBox.Show(ex.Message)
    End Try
    ' Set the image to null (will not dispose the second image)
    viewer.Image = Nothing
    ' We should now dispose the two images manually
    image1.Dispose()
    image2.Dispose()
End Sub
Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
             
   
     
            using Leadtools.WinForms;
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Drawing;
public void RasterPictureBox_AutoDisposeImage(RasterPictureBox viewer)
{
   // Load two image2
   RasterCodecs codecs = new RasterCodecs();
   string file1 = Path.Combine(LEAD_VARS.ImagesDir, "Image1.cmp");
   string file2 = Path.Combine(LEAD_VARS.ImagesDir, "Image2.cmp");
   RasterImage image1 = codecs.Load(file1);
   RasterImage image2 = codecs.Load(file2);
   // Make sure the AutoDisposeImage property of the viewer is set to true
   viewer.AutoDisposeImage = true;
   // Set the first image into the viewer
   viewer.Image = image1;
   // Now set the second image into the viewer (this disposes the first image since the AutoDisposeImage property is true)
   viewer.Image = image2;
   // Try to access the first image, it generates a NullReferenceException exception since the image has been disposed
   MessageBox.Show("Try to access the first image, it generates a NullReferenceException exception since the image has been disposed.");
   try
   {
      int width = image1.Width;
      MessageBox.Show(string.Format("Width is {0} pixels", width));
   }
   catch (NullReferenceException ex)
   {
      MessageBox.Show(ex.Message);
   }
   // Set the image to null (will dispose the second image as well)
   viewer.Image = null;
   // Now re-load the two images
   image1 = codecs.Load(file1);
   image2 = codecs.Load(file2);
   // Make sure the AutoDisposeImage property of the viewer is set to false
   viewer.AutoDisposeImage = false;
   // Set the first image into the viewer
   viewer.Image = image1;
   // Now set the second image into the viewer (this will not disposes the first image since the AutoDisposeImage property is false)
   viewer.Image = image2;
   // Try to access the first image, it should work fine this time
   try
   {
      int width = image1.Width;
      MessageBox.Show(string.Format("Width is {0} pixels", width));
   }
   catch (NullReferenceException ex)
   {
      MessageBox.Show(ex.Message);
   }
   // Set the image to null (will not dispose the second image)
   viewer.Image = null;
   // We should now dispose the two images manually
   image1.Dispose();
   image2.Dispose();
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}