Proprietà ListView.CheckedItems (System.Windows.Forms)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Proprietà ListView.CheckedItems

Ottiene gli elementi attualmente selezionati nel controllo.

Spazio dei nomi: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Sintassi

Visual Basic - (Dichiarazione)
Public ReadOnly Property CheckedItems As CheckedListViewItemCollection
Visual Basic (Utilizzo)
Dim instance As ListView
Dim value As CheckedListViewItemCollection

value = instance.CheckedItems

C#
public CheckedListViewItemCollection CheckedItems { get; }
C++
public:
property CheckedListViewItemCollection^ CheckedItems {
	CheckedListViewItemCollection^ get ();
}
J#
/** @property */
public CheckedListViewItemCollection get_CheckedItems ()

JScript
public function get CheckedItems () : CheckedListViewItemCollection

Valore proprietà

Oggetto ListView.CheckedListViewItemCollection che contiene gli elementi attualmente selezionati. Se nessun elemento è attualmente selezionato, viene restituito un oggetto ListView.CheckedListViewItemCollection vuoto.
Note

Questa proprietà è utile solo quando la proprietà CheckBoxes del controllo ListView è impostata su true. La proprietà CheckedItems restituisce un insieme contenente gli elementi selezionati nel controllo. Per ulteriori informazioni su come modificare gli elementi nell'insieme, vedere la classe ListView.CheckedListViewItemCollection.

Per ottenere un insieme delle posizioni di indice all'interno della classe ListView.ListViewItemCollection degli elementi selezionati nel controllo ListView, anziché gli elementi selezionati, utilizzare la proprietà CheckedIndices.

Esempio

Nel codice di esempio riportato di seguito viene illustrata una classe ListView selezionata che gestisce l'evento ItemChecked. Nell'esempio viene utilizzata la proprietà CheckedItems per calcolare un nuovo prezzo ogni volta che viene selezionata o deselezionata una voce. Per eseguire l'esempio, incollare il codice riportato di seguito in un form contenente una classe ListView denominata ListView1 e una classe TextBox denominata Textbox1. Chiamare il metodo InititalizeListView dal costruttore del form o dal metodo Load.

Visual Basic
    Private Sub InitializeListView()
        Me.ListView1 = New System.Windows.Forms.ListView

        ' Set properties such as BackColor, Location and Size
        Me.ListView1.BackColor = System.Drawing.SystemColors.Control
        Me.ListView1.Dock = System.Windows.Forms.DockStyle.Top
        Me.ListView1.Location = New System.Drawing.Point(0, 0)
        Me.ListView1.Size = New System.Drawing.Size(292, 130)
        Me.ListView1.View = System.Windows.Forms.View.Details
        Me.ListView1.HideSelection = False

        ' Allow user to select multiple items.
        Me.ListView1.MultiSelect = True

        ' Show check boxes in the ListView.
        Me.ListView1.CheckBoxes = True

        'Set the column headers and populate the columns.
        ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
        Dim columnHeader1 As New ColumnHeader
        With columnHeader1
            .Text = "Breakfast Choices"
            .TextAlign = HorizontalAlignment.Left
            .Width = 146
        End With
        Dim columnHeader2 As New ColumnHeader
        With columnHeader2
            .Text = "Price Each"
            .TextAlign = HorizontalAlignment.Center
            .Width = 142
        End With
        Me.ListView1.Columns.Add(columnHeader1)
        Me.ListView1.Columns.Add(columnHeader2)
        Dim foodList() As String = New String() {"Juice", "Coffee", _
            "Cereal & Milk", "Fruit Plate", "Toast & Jelly", _
            "Bagel & Cream Cheese"}

        Dim foodPrice() As String = New String() {"1.09", "1.09", "2.19", _
            "2.79", "2.09", "2.69"}
        Dim count As Integer

        ' 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 To foodList.Length - 1
            Dim listItem As New ListViewItem(foodList(count))
            listItem.SubItems.Add(foodPrice(count))
            ListView1.Items.Add(listItem)
        Next

        'Call EndUpdate when you finish adding items to the ListView.
        ListView1.EndUpdate()
        Me.Controls.Add(Me.ListView1)
    End Sub
...    ' Handles the ItemCheck 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.
    Private Sub ListView1_ItemCheck2(ByVal sender As Object, _
        ByVal e As System.Windows.Forms.ItemCheckEventArgs) _
        Handles ListView1.ItemCheck

        Dim item As ListViewItem
        Dim price As Double = 0.0
        Dim checkedItems As ListView.CheckedListViewItemCollection = _
            ListView1.CheckedItems
        For Each item In checkedItems
            price += Double.Parse(item.SubItems(1).Text)
        Next
        If (e.CurrentValue = CheckState.Unchecked) Then
            price += Double.Parse(Me.ListView1.Items(e.Index).SubItems(1).Text)
        ElseIf (e.CurrentValue = CheckState.Checked) Then
            price -= Double.Parse(Me.ListView1.Items(e.Index).SubItems(1).Text)
        End If

        ' Output the price to TextBox1.
        TextBox1.Text = CType(price, String)
    End Sub

C#
	private void InitializeListView()
	{
		this.ListView1 = new 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 = new System.Drawing.Point(0, 0);
		this.ListView1.Size = new 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 = new ColumnHeader();
		columnHeader1.Text = "Breakfast Choices";
		columnHeader1.TextAlign = HorizontalAlignment.Left;
		columnHeader1.Width = 146;

		ColumnHeader columnHeader2 = new ColumnHeader();
		columnHeader2.Text = "Price Each";
		columnHeader2.TextAlign = HorizontalAlignment.Center;
		columnHeader2.Width = 142;

       	this.ListView1.Columns.Add(columnHeader1);
		this.ListView1.Columns.Add(columnHeader2);

		string[] foodList = new string[]{"Juice", "Coffee", 
			"Cereal & Milk", "Fruit Plate", "Toast & Jelly", 
			"Bagel & Cream Cheese"};

		string[] foodPrice = new string[]{"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 = new 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.
	private void ListView1_ItemCheck2(object sender, 
		System.Windows.Forms.ItemCheckEventArgs e)
	{
		double price = 0.0;
		ListView.CheckedListViewItemCollection checkedItems = 
			ListView1.CheckedItems;
		
		foreach ( ListViewItem item in checkedItems )
		{
			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();
	}

C++
   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();
   }

J#
    private void InitializeListView()
    {
        this.listView1 = new System.Windows.Forms.ListView();
        // Set properties such as BackColor and DockStyle and Location.
        this.listView1.set_BackColor(System.Drawing.SystemColors.get_Control());
        this.listView1.set_Dock(System.Windows.Forms.DockStyle.Top);
        this.listView1.set_Location(new System.Drawing.Point(0, 0));
        this.listView1.set_Size(new System.Drawing.Size(292, 130));
        this.listView1.set_View(System.Windows.Forms.View.Details);
        this.listView1.set_HideSelection(false);
        // Allow the user to select multiple items.
        this.listView1.set_MultiSelect(true);
        // Show CheckBoxes in the ListView.
        this.listView1.set_CheckBoxes(true);
        //Set the column headers and populate the columns.
        listView1.set_HeaderStyle(ColumnHeaderStyle.Nonclickable);

        ColumnHeader columnHeader1 = new ColumnHeader();
        columnHeader1.set_Text("Breakfast Choices");
        columnHeader1.set_TextAlign(HorizontalAlignment.Left);
        columnHeader1.set_Width(146);

        ColumnHeader columnHeader2 = new ColumnHeader();
        columnHeader2.set_Text("Price Each");
        columnHeader2.set_TextAlign(HorizontalAlignment.Center);
        columnHeader2.set_Width(142);

        this.listView1.get_Columns().Add(columnHeader1);
        this.listView1.get_Columns().Add(columnHeader2);

        String foodList[] = new String[] { "Juice", "Coffee", "Cereal & Milk",
            "Fruit Plate", "Toast & Jelly", "Bagel & Cream Cheese" };

        String foodPrice[] = new String[] { "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 =
                new ListViewItem((String)foodList.get_Item(count));
            listItem.get_SubItems().Add((String)foodPrice.get_Item(count));
            listView1.get_Items().Add(listItem);
        }
        //Call EndUpdate when you finish adding items to the ListView.
        listView1.EndUpdate();
        this.get_Controls().Add(this.listView1);
    } //InitializeListView
...    // 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.
    private void listView1_ItemCheck2(Object sender,
        System.Windows.Forms.ItemCheckEventArgs e)
    {
        double price = 0.0;
        ListView.CheckedListViewItemCollection checkedItems =
            listView1.get_CheckedItems();
        for (int iCtr = 0; iCtr < checkedItems.get_Count(); iCtr++) {
            ListViewItem item = checkedItems.get_Item(iCtr);
            price +=
                System.Double.Parse(item.get_SubItems().get_Item(1).get_Text());
        }
        if (e.get_CurrentValue().Equals(CheckState.Unchecked)) {
            price += System.Double.Parse(this.listView1.get_Items().
                get_Item(e.get_Index()).get_SubItems().get_Item(1).
                get_Text());
        }
        else {
            if (e.get_CurrentValue().Equals(CheckState.Checked)) {
                price -= System.Double.Parse(this.listView1.get_Items().
                    get_Item(e.get_Index()).get_SubItems().get_Item(1).
                    get_Text());
            }
        }
        // Output the price to TextBox1.
        textBox1.set_Text(((System.Double)price).ToString());
    } //listView1_ItemCheck2

Piattaforme

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

Informazioni sulla versione

.NET Framework

Supportato in: 2.0 1.1 1.0
Vedere anche