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



Gets or sets the object that contains data about this RasterImageListItem.

Syntax

Visual Basic (Declaration) 
Public Property Tag As Object
Visual Basic (Usage)Copy Code
Dim instance As RasterImageListItem
Dim value As Object
 
instance.Tag = value
 
value = instance.Tag
C# 
public object Tag {get; set;}
C++/CLI 
public:
property Object^ Tag {
   Object^ get();
   void set (    Object^ value);
}

Property Value

An System.Object that contains data about this RasterImageListItem. The default value is a null reference (Nothing in Visual Basic).

Example

This example creates and populates a RasterImageList control with a few items. It then associates each item with a user-defined object. When the selected item is changed by the user interface, the corresponding user data is pulled from the selected item and displayed in a message box.

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

Remarks

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.

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