Leadtools.WinForms Namespace > RasterImageListItem Class : Tag Property |
public object Tag {get; set;}
'Declaration Public Property Tag As Object
'Usage Dim instance As RasterImageListItem Dim value As Object instance.Tag = value value = instance.Tag
Any System.Object derived type can be assigned to this property.
You can use this property to associate your own user-defined data with an item.
Imports Leadtools.WinForms Imports Leadtools Imports Leadtools.Codecs Private Class UserData Public Number As Integer Public Text As String End Class Public Sub RasterImageListItem_Tag(ByVal imageList As RasterImageList) ' Create a new RasterImageList control. imageList.Bounds = New Rectangle(New Point(0, 0), New Size(300, 200)) ' Sort the items in the list in ascending order. imageList.Sorting = SortOrder.Ascending ' Initialize the RasterCodecs class Dim codecs As RasterCodecs = New RasterCodecs() ' Clear existing items imageList.Items.Clear() ' Create three items Dim imagesPath As String = LEAD_VARS.ImagesDir For i As Integer = 0 To 2 ' Load the image Dim index As Integer = i + 1 Dim imageFileName As String = Path.Combine(imagesPath, "ImageProcessingDemo\Image" & index.ToString() & ".cmp") Dim image As RasterImage = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1) Dim item As RasterImageListItem = New RasterImageListItem(image, 1, "Item" & index.ToString()) ' Select the first item If i = 0 Then item.Selected = True End If ' Add the user data Dim data As UserData = New UserData() data.Number = index data.Text = "This is data number " & index.ToString() item.Tag = data ' Add the item to the image list imageList.Items.Add(item) Next i ' Add a handler to the SelectedIndexChanged event AddHandler imageList.SelectedIndexChanged, AddressOf imageList_SelectedIndexChanged End Sub Private Sub imageList_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) ' User has selected an item from the RasterImageList control. ' Get the user data associated with the currently selected item and ' show it in a message box Dim imageList As RasterImageList = CType(IIf(TypeOf sender Is RasterImageList, sender, Nothing), RasterImageList) ' Get the selected item(s) Dim selectedItems As RasterImageListItemCollection = imageList.SelectedItems If Not selectedItems Is Nothing AndAlso selectedItems.Count = 1 Then Dim item As RasterImageListItem = selectedItems(0) ' Load the image in its original size and set it in the viewer Dim data As UserData = CType(IIf(TypeOf item.Tag Is UserData, item.Tag, Nothing), UserData) Dim msg As String = String.Format("Number = {0}{1}Text = {2}", data.Number, Environment.NewLine, data.Text) MessageBox.Show(msg) End If 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; private class UserData { public int Number; public string Text; } public void RasterImageListItem_Tag(RasterImageList imageList) { // Create a new RasterImageList control. imageList.Bounds = new Rectangle(new Point(0, 0), new Size(300, 200)); // Sort the items in the list in ascending order. imageList.Sorting = SortOrder.Ascending; // Initialize the RasterCodecs class RasterCodecs codecs = new RasterCodecs(); // Clear existing items imageList.Items.Clear(); // Create three items string imagesPath = LEAD_VARS.ImagesDir; for (int i = 0; i < 3; i++) { // Load the image int index = i + 1; string imageFileName = Path.Combine(imagesPath, @"ImageProcessingDemo\Image" + index.ToString() + ".cmp"); RasterImage image = codecs.Load(imageFileName, 0, CodecsLoadByteOrder.BgrOrGray, 1, 1); RasterImageListItem item = new RasterImageListItem(image, 1, "Item" + index.ToString()); // Select the first item if (i == 0) item.Selected = true; // Add the user data UserData data = new UserData(); data.Number = index; data.Text = "This is data number " + index.ToString(); item.Tag = data; // Add the item to the image list imageList.Items.Add(item); } // Add a handler to the SelectedIndexChanged event imageList.SelectedIndexChanged += new EventHandler(imageList_SelectedIndexChanged); } private void imageList_SelectedIndexChanged(object sender, EventArgs e) { // User has selected an item from the RasterImageList control. // Get the user data associated with the currently selected item and // show it in a message box RasterImageList imageList = sender as RasterImageList; // Get the selected item(s) RasterImageListItemCollection selectedItems = imageList.SelectedItems; if (selectedItems != null && selectedItems.Count == 1) { RasterImageListItem item = selectedItems[0]; // Load the image in its original size and set it in the viewer UserData data = item.Tag as UserData; string msg = string.Format("Number = {0}{1}Text = {2}", data.Number, Environment.NewLine, data.Text); MessageBox.Show(msg); } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }