Leadtools.WinForms Send comments on this topic. | Back to Introduction - All Topics | Help Version 16.5.9.25
Tag Property
See Also  Example
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);
}

Return Value

An 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
   RasterCodecs.Startup()
   Dim codecs As RasterCodecs = New RasterCodecs()

   ' Clear existing items
   imageList.Items.Clear()

   ' Create three items
      Dim imagesPath As String = LeadtoolsExamples.Common.ImagesPath.Path

   For i As Integer = 0 To 2
      ' Load the image
      Dim index As Integer = i + 1
      Dim imageFileName As String = imagesPath & "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
   RasterCodecs.Shutdown()
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
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.Startup(); 
   RasterCodecs codecs = new RasterCodecs(); 
 
   // Clear existing items 
   imageList.Items.Clear(); 
 
   // Create three items 
   string imagesPath = LeadtoolsExamples.Common.ImagesPath.Path; 
 
   for (int i = 0; i < 3; i++) 
   { 
      // Load the image 
      int index = i + 1; 
      string imageFileName = imagesPath + "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); 
   RasterCodecs.Shutdown(); 

 
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); 
   } 
}

Remarks

Any 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 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also