ListView.CheckBoxes Property
Gets or sets a value indicating whether a check box appears next to each item in the control.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
The CheckBoxes property allows you to display a check box next to each item in the list. This enables your application to display a list of items (and subitems if the View property is set to View.Details) that the user can select by clicking the check box. The CheckBoxes property offers a way to select multiple items in the ListView control without using the CTRL key. Depending on your application, using check boxes to select items rather than the standard multiple selection method may be easier for the user. Even if the MultiSelect property of the ListView control is set to false, you can still display checkboxes and provide multiple selection capabilities to the user. This feature can be useful if you do not want multiple items to be selected yet still want to allow the user to choose multiple items from the list to perform an operation within your application.
To determine when an item has been checked, create an event handler for the ItemCheck event. To get all the items that are checked in the ListView, use the CheckedItems property to access the ListView.CheckedIndexCollection for the control. To get the indexes of all items that are checked in the ListView, use the CheckedIndices property.
If an ImageList is specified in the StateImageList property, the images at index positions 0 and 1 in the ImageList are displayed instead of the check box. The image at index position 0 is displayed instead of the unchecked check box, and the image at index position 1 is displayed instead of the checked check box.
The following code example creates a ListView control with three ListViewItem objects specified and three ListViewItem.ListViewSubItem objects specified for each item. The example also creates ColumnHeader objects to display the subitems in details view. Two ImageList objects are also created in the code example to provide images for the ListViewItem objects. These ImageList objects are added to the LargeImageList and SmallImageList properties. The example uses the following properties in creating the ListView control.
-
CheckBoxes
This example requires that you have added the code to a Form and call the method created in the example from the constructor or another method on the form. The example also requires that images named MySmallImage1, MySmallImage2, MyLargeImage1, and MyLargeImage2 are located in the root directory of drive C.
private void CreateMyListView() { // Create a new ListView control. ListView listView1 = new ListView(); listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200)); // Set the view to show details. listView1.View = View.Details; // Allow the user to edit item text. listView1.LabelEdit = true; // Allow the user to rearrange columns. listView1.AllowColumnReorder = true; // Display check boxes. listView1.CheckBoxes = true; // Select the item and subitems when selection is made. listView1.FullRowSelect = true; // Display grid lines. listView1.GridLines = true; // Sort the items in the list in ascending order. listView1.Sorting = SortOrder.Ascending; // Create three items and three sets of subitems for each item. ListViewItem item1 = new ListViewItem("item1",0); // Place a check mark next to the item. item1.Checked = true; item1.SubItems.Add("1"); item1.SubItems.Add("2"); item1.SubItems.Add("3"); ListViewItem item2 = new ListViewItem("item2",1); item2.SubItems.Add("4"); item2.SubItems.Add("5"); item2.SubItems.Add("6"); ListViewItem item3 = new ListViewItem("item3",0); // Place a check mark next to the item. item3.Checked = true; item3.SubItems.Add("7"); item3.SubItems.Add("8"); item3.SubItems.Add("9"); // Create columns for the items and subitems. // Width of -2 indicates auto-size. listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left); listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left); listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left); listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center); //Add the items to the ListView. listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3}); // Create two ImageList objects. ImageList imageListSmall = new ImageList(); ImageList imageListLarge = new ImageList(); // Initialize the ImageList objects with bitmaps. imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp")); imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp")); imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp")); imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp")); //Assign the ImageList objects to the ListView. listView1.LargeImageList = imageListLarge; listView1.SmallImageList = imageListSmall; // Add the ListView to the control collection. this.Controls.Add(listView1); }
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
- 12/12/2011
- Creatives
Thanks once again guys for banging out a control that you obviously haven't tested or had to use in anything but the most trivial scenarios.
- 6/17/2011
- Freqy
It seems that this is simply more poor, sloppy programming from the boys in Redmond, and you'll just have to suck it up, and hold a state variable of your own to decide when to respond to the event.
You can"t fight make it work as it should, you have to work around it. Typical.
- 4/27/2011
- SomeDumbBumb
Note