ListView::CheckedItems Property

 

Gets the currently checked items in the control.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

public:
[BrowsableAttribute(false)]
property ListView::CheckedListViewItemCollection^ CheckedItems {
	ListView::CheckedListViewItemCollection^ get();
}

Property Value

Type: System.Windows.Forms::ListView::CheckedListViewItemCollection^

A ListView::CheckedListViewItemCollection that contains the currently checked items. If no items are currently checked, an empty ListView::CheckedListViewItemCollection is returned.

This property is only useful when the CheckBoxes property of the ListView control is set to true. The CheckedItems property returns a collection that contains all items that are checked in the control. For more information about how to manipulate the items in the collection, see ListView::CheckedListViewItemCollection.

If you want to obtain a collection of the index positions within the ListView::ListViewItemCollection of the items that are checked in the ListView control, instead of the items that are checked, use the CheckedIndices property.

The following code example demonstrates a checked ListView that handles the ItemChecked event. The example uses the CheckedItems property to tally a new price every time that an item is checked or unchecked. To run this example, paste the following code into a form that contains a ListView named ListView1 and a TextBox named Textbox1. Call the InititalizeListView method from the form's constructor or Load method.

void InitializeListView()
{
   this->ListView1 = gcnew System::Windows::Forms::ListView;

   // Set properties such as BackColor and DockStyle and Location.
   this->ListView1->BackColor = System::Drawing::SystemColors::Control;
   this->ListView1->Dock = System::Windows::Forms::DockStyle::Top;
   this->ListView1->Location = System::Drawing::Point( 0, 0 );
   this->ListView1->Size = System::Drawing::Size( 292, 130 );
   this->ListView1->View = System::Windows::Forms::View::Details;
   this->ListView1->HideSelection = false;

   // Allow the user to select multiple items.
   this->ListView1->MultiSelect = true;

   // Show CheckBoxes in the ListView.
   this->ListView1->CheckBoxes = true;

   //Set the column headers and populate the columns.
   ListView1->HeaderStyle = ColumnHeaderStyle::Nonclickable;
   ColumnHeader^ columnHeader1 = gcnew ColumnHeader;
   columnHeader1->Text = "Breakfast Choices";
   columnHeader1->TextAlign = HorizontalAlignment::Left;
   columnHeader1->Width = 146;
   ColumnHeader^ columnHeader2 = gcnew ColumnHeader;
   columnHeader2->Text = "Price Each";
   columnHeader2->TextAlign = HorizontalAlignment::Center;
   columnHeader2->Width = 142;
   this->ListView1->Columns->Add( columnHeader1 );
   this->ListView1->Columns->Add( columnHeader2 );
   array<String^>^foodList = {"Juice","Coffee","Cereal & Milk","Fruit Plate","Toast & Jelly","Bagel & Cream Cheese"};
   array<String^>^foodPrice = {"1.09","1.09","2.19","2.79","2.09","2.69"};
   int count;

   // Members are added one at a time, so call BeginUpdate to ensure 
   // the list is painted only once, rather than as each list item is added.
   ListView1->BeginUpdate();
   for ( count = 0; count < foodList->Length; count++ )
   {
      ListViewItem^ listItem = gcnew ListViewItem( foodList[ count ] );
      listItem->SubItems->Add( foodPrice[ count ] );
      ListView1->Items->Add( listItem );
   }

   //Call EndUpdate when you finish adding items to the ListView.
   ListView1->EndUpdate();
   this->Controls->Add( this->ListView1 );
}
// Handles the ItemChecked event.  The method loops through all the 
// checked items and tallies a new price each time an item is 
// checked or unchecked. It outputs the price to TextBox1.
void ListView1_ItemCheck2( Object^ /*sender*/, System::Windows::Forms::ItemCheckEventArgs^ e )
{
   double price = 0.0;
   ListView::CheckedListViewItemCollection^ checkedItems = ListView1->CheckedItems;
   System::Collections::IEnumerator^ myEnum = checkedItems->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      ListViewItem^ item = safe_cast<ListViewItem^>(myEnum->Current);
      price += Double::Parse( item->SubItems[ 1 ]->Text );
   }

   if ( e->CurrentValue == CheckState::Unchecked )
   {
      price += Double::Parse( this->ListView1->Items[ e->Index ]->SubItems[ 1 ]->Text );
   }
   else
   if ( (e->CurrentValue == CheckState::Checked) )
   {
      price -= Double::Parse( this->ListView1->Items[ e->Index ]->SubItems[ 1 ]->Text );
   }

   // Output the price to TextBox1.
   TextBox1->Text = price.ToString();
}

.NET Framework
Available since 1.1
Return to top
Show: