Leadtools.Windows.Controls Namespace > ImageList Class : AutoDisposeImages Property |
[CategoryAttribute("Behavior")] [DescriptionAttribute("Automatically disposes the item RasterImage objects when them item is removed from the control or when the control is disposed.")] public bool AutoDisposeImages {get; set;}
'Declaration <CategoryAttribute("Behavior")> <DescriptionAttribute("Automatically disposes the item RasterImage objects when them item is removed from the control or when the control is disposed.")> Public Property AutoDisposeImages As Boolean
'Usage Dim instance As ImageList Dim value As Boolean instance.AutoDisposeImages = value value = instance.AutoDisposeImages
[CategoryAttribute("Behavior")] [DescriptionAttribute("Automatically disposes the item RasterImage objects when them item is removed from the control or when the control is disposed.")] public: property bool AutoDisposeImages { bool get(); void set ( bool value); }
When you change the value of this property, this control iterate all the items inside it and set the RasterImageListItem.AutoDisposeImages value of each item that is of type RasterImageListItem accordingly. For more information, refer to RasterImageListItem.AutoDisposeImages.
Imports Leadtools.Windows.Controls Imports Leadtools.Codecs Imports Leadtools Public Sub ImageList_AutoDisposeImages(ByVal imageList As ImageList) ' Make sure the AutoDisposeImages property is set to true imageList.AutoDisposeImages = True MessageBox.Show("Removing an item then accessing its image with AutoDisposeImages set to true") ' Remove the first item Dim item As RasterImageListItem = CType(imageList.Items(0), RasterImageListItem) imageList.Items.RemoveAt(0) ' Try to save this item's image into a disk file ' This will throw an exception since the item image has been dispose ' as a result of having the AutoDisposeImages false set to true Dim codecs As New RasterCodecs() Try codecs.Save(item.Image, Path.Combine(LEAD_VARS.ImagesDir, "Test.jpg"), RasterImageFormat.Jpeg, 24) MessageBox.Show("Image saved correctly") Catch ex As Exception MessageBox.Show(ex.Message) End Try MessageBox.Show("Removing an item then accessing its image with AutoDisposeImages set to false") ' Now remove the next item, this time make sure to set the ' AutoDisposeImages property to false before you remove the item ' from the control collection item = CType(imageList.Items(0), RasterImageListItem) imageList.AutoDisposeImages = False imageList.Items.RemoveAt(0) imageList.AutoDisposeImages = True ' Try to save this item's image into a disk file ' This time, this should work correcly since the control did not dispose ' the item image. Try codecs.Save(item.Image, Path.Combine(LEAD_VARS.ImagesDir, "Test.jpg"), RasterImageFormat.Jpeg, 24) MessageBox.Show("Image saved correctly") Catch ex As Exception MessageBox.Show(ex.Message) End Try codecs.Dispose() End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
using Leadtools.Help; using Leadtools.Windows.Controls; using Leadtools; using Leadtools.Codecs; public void ImageList_AutoDisposeImages(ImageList imageList) { // Make sure the AutoDisposeImages property is set to true imageList.AutoDisposeImages = true; MessageBox.Show("Removing an item then accessing its image with AutoDisposeImages set to true"); // Remove the first item RasterImageListItem item = imageList.Items[0] as RasterImageListItem; imageList.Items.RemoveAt(0); // Try to save this item's image into a disk file // This will throw an exception since the item image has been dispose // as a result of having the AutoDisposeImages false set to true RasterCodecs codecs = new RasterCodecs(); try { codecs.Save(item.Image, Path.Combine(LEAD_VARS.ImagesDir, "Test.jpg"), RasterImageFormat.Jpeg, 24); MessageBox.Show("Image saved correctly"); } catch(Exception ex) { MessageBox.Show(ex.Message); } MessageBox.Show("Removing an item then accessing its image with AutoDisposeImages set to false"); // Now remove the next item, this time make sure to set the // AutoDisposeImages property to false before you remove the item // from the control collection item = imageList.Items[0] as RasterImageListItem; imageList.AutoDisposeImages = false; imageList.Items.RemoveAt(0); imageList.AutoDisposeImages = true; // Try to save this item's image into a disk file // This time, this should work correcly since the control did not dispose // the item image. try { codecs.Save(item.Image, Path.Combine(LEAD_VARS.ImagesDir, "Test.jpg"), RasterImageFormat.Jpeg, 24); MessageBox.Show("Image saved correctly"); } catch(Exception ex) { MessageBox.Show(ex.Message); } codecs.Dispose(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }