←Select platform

AutoDisposeImage Property

Summary

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

Syntax

C#
VB
C++
[CategoryAttribute("Behavior")] 
[DescriptionAttribute("Indicating whether to auto dispose the old image when a new image is set into this control")] 
public bool AutoDisposeImage {get; set;} 
<CategoryAttribute("Behavior")> 
<DescriptionAttribute("Indicating whether to auto dispose the old image when a new image is set into this control")> 
Public Property AutoDisposeImage As Boolean 
[CategoryAttribute("Behavior")] 
[DescriptionAttribute("Indicating whether to auto dispose the old image when a new image is set into this control")] 
public: 
property bool AutoDisposeImage { 
   bool get(); 
   void set (    bool ); 
} 

Property Value

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

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.

Example

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

C#
VB
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"; 
} 

Requirements

Target Platforms

Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.
Leadtools.WinForms Assembly
Click or drag to resize