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



Gets or sets whether automatic item selection is allowed.

Syntax

Visual Basic (Declaration) 
<CategoryAttribute("Behavior")>
<DescriptionAttribute("Indicates if the control is to be single-select, multi-select or unselectable.")>
Public Property SelectionMode As RasterImageListSelectionMode
Visual Basic (Usage)Copy Code
Dim instance As RasterImageList
Dim value As RasterImageListSelectionMode
 
instance.SelectionMode = value
 
value = instance.SelectionMode
C# 
[CategoryAttribute("Behavior")]
[DescriptionAttribute("Indicates if the control is to be single-select, multi-select or unselectable.")]
public RasterImageListSelectionMode SelectionMode {get; set;}
C++/CLI 
[CategoryAttribute("Behavior")]
[DescriptionAttribute("Indicates if the control is to be single-select, multi-select or unselectable.")]
public:
property RasterImageListSelectionMode SelectionMode {
   RasterImageListSelectionMode get();
   void set (    RasterImageListSelectionMode value);
}

Property Value

An RasterImageListSelectionMode enumeration that indicates whether automatic item selection is allowed. Default value is RasterImageListSelectionMode.Single.

Example

This example shows how to perform manual selection on a RasterImageList control.

Visual BasicCopy Code
Private Class MyForm5 : Inherits Form
      Private imageList As RasterImageList
      Private codecs As RasterCodecs
      Public Sub New(ByVal title As String)
         Text = title

         ' Set the size of the form
         Size = New Size(400, 200)

         ' Create a new RasterImageList control
         imageList = New RasterImageList()
         imageList.Dock = DockStyle.Fill
         imageList.SelectionMode = RasterImageListSelectionMode.Single
         imageList.Size = Size
         Controls.Add(imageList)
         imageList.BringToFront()

         codecs = New RasterCodecs()

         ' 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 item to the image list
            imageList.Items.Add(item)
         Next i


         ' Use manual selection
         imageList.SelectionMode = RasterImageListSelectionMode.None

         ' Add a handler to the MouseDown event
         AddHandler imageList.MouseDown, AddressOf rasterImageList_MouseDown

         ' Add the RasterImageList to the control collection.
         Controls.Add(imageList)
      End Sub

      Private Sub rasterImageList_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
         Dim imageList As RasterImageList = CType(IIf(TypeOf sender Is RasterImageList, sender, Nothing), RasterImageList)

         ' Check if we are in manual selection mode and if this is a left button click
         If imageList.SelectionMode = RasterImageListSelectionMode.None AndAlso e.Button = Windows.Forms.MouseButtons.Left Then
            ' Yes, get the item under the cursor position
            Dim item As RasterImageListItem = imageList.HitTest(e.X, e.Y)

            ' If not already selected, select this item
            If Not item Is Nothing AndAlso (Not item.Selected) Then
               imageList.BeginUpdate()

               ' First, de-select any items
               imageList.SelectAll(False)

               ' Now select this item
               item.Selected = True

               imageList.EndUpdate()

               item.Invalidate()
            End If
         End If
      End Sub
   End Class

   Public Sub RasterImageList_SelectionMode(ByVal title As String)
      Dim form As MyForm5 = New MyForm5(title)
      form.ShowDialog()
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
C#Copy Code
class MyForm5 : Form
   {
      RasterImageList imageList;
      RasterCodecs codecs;
      public MyForm5(string title)
      {
         Text = title;

         // Set the size of the form
         Size = new Size(400, 200);

         // Create a new RasterImageList control
         imageList = new RasterImageList();
         imageList.Dock = DockStyle.Fill;
         imageList.SelectionMode = RasterImageListSelectionMode.Single;
         imageList.Size = Size;
         Controls.Add(imageList);
         imageList.BringToFront();

         codecs = new RasterCodecs();

         // 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 item to the image list
            imageList.Items.Add(item);
         }


         // Use manual selection
         imageList.SelectionMode = RasterImageListSelectionMode.None;

         // Add a handler to the MouseDown event
         imageList.MouseDown += new MouseEventHandler(rasterImageList_MouseDown);

         // Add the RasterImageList to the control collection.
         Controls.Add(imageList);
      }

      private void rasterImageList_MouseDown(object sender, MouseEventArgs e)
      {
         RasterImageList imageList = sender as RasterImageList;

         // Check if we are in manual selection mode and if this is a left button click
         if(imageList.SelectionMode == RasterImageListSelectionMode.None &&
            e.Button == MouseButtons.Left)
         {
            // Yes, get the item under the cursor position
            RasterImageListItem item = imageList.HitTest(e.X, e.Y);

            // If not already selected, select this item
            if(item != null && !item.Selected)
            {
               imageList.BeginUpdate();

               // First, de-select any items
               imageList.SelectAll(false);

               // Now select this item
               item.Selected = true;

               imageList.EndUpdate();

               item.Invalidate();
            }
         }
      }
   }

   public void RasterImageList_SelectionMode(string title)
   {
      MyForm5 form = new MyForm5(title);
      form.ShowDialog();
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}

Remarks

If automatic item selection is enabled, items are automatically selected and de-selected when the user clicks on them using the mouse or when moving the current selected item using the keyboard.

For more information, refer to the RasterImageListSelectionMode enumeration.

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