LEADTOOLS Windows Forms (Leadtools.WinForms assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.30
AutoDisposeImage Property
See Also 
Leadtools.WinForms Namespace > RasterPictureBox Class : AutoDisposeImage Property



Gets or sets a value indicating whether to auto dispose the old image when a new image is set into this RasterPictureBox.

Syntax

Visual Basic (Declaration) 
<DescriptionAttribute("Indicating whether to auto dispose the old image when a new image is set into this control")>
<CategoryAttribute("Behavior")>
Public Property AutoDisposeImage As Boolean
Visual Basic (Usage)Copy Code
Dim instance As RasterPictureBox
Dim value As Boolean
 
instance.AutoDisposeImage = value
 
value = instance.AutoDisposeImage
C# 
[DescriptionAttribute("Indicating whether to auto dispose the old image when a new image is set into this control")]
[CategoryAttribute("Behavior")]
public bool AutoDisposeImage {get; set;}
C++/CLI 
[DescriptionAttribute("Indicating whether to auto dispose the old image when a new image is set into this control")]
[CategoryAttribute("Behavior")]
public:
property bool AutoDisposeImage {
   bool get();
   void set (    bool value);
}

Property Value

true if the image in Image is automatically disposed when a new image is set; otherwise, false. Default value is true.

Example

This sample loads two images to demonstrate how the AutoDisposeImage property affects whether the item image remains usable.

Visual BasicCopy Code
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
C#Copy Code
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";
}

Remarks

By default, whenever you set a new image into the Image property, the old image (if any) is disposed. Set the value of this property to false to prevent disposing of the old image.

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 2000, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7

See Also