ListView::CheckedItems Property
Gets the currently checked items in the control.
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(); }
Available since 1.1