Questa documentazione è stata archiviata e non viene gestita.

Classe ListView.SelectedIndexCollection

Rappresenta l'insieme contenente gli indici agli elementi selezionati in un controllo ListView.

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

public class SelectedIndexCollection : IList, ICollection, IEnumerable
public class SelectedIndexCollection implements IList, ICollection, 
	IEnumerable
public class SelectedIndexCollection implements IList, ICollection, 
	IEnumerable

In una classe ListView.SelectedIndexCollection vengono archiviati gli indici degli elementi selezionati in un controllo ListView. Gli indici archiviati nella classe ListView.SelectedIndexCollection corrispondono alle posizioni di indice all'interno della classe ListView.ListViewItemCollection. Nella classe ListView.ListViewItemCollection vengono archiviati tutti gli elementi visualizzati nel controllo ListView.

Nella tabella riportata di seguito viene illustrato il modo in cui la classe ListView.ListViewItemCollection memorizza gli elementi del controllo ListView e vengono riportati gli stati di selezione in un controllo ListView di esempio.

Indice

Elemento

Stato di selezione in ListView

0

Elemento1

Non selezionato

1

Elemento2

Selezionato

2

Elemento3

Non selezionato

3

Elemento4

Selezionato

4

Elemento5

Selezionato

In base all'esempio della classe ListView.ListViewItemCollection riportato nella tabella precedente, di seguito viene illustrato l'aspetto della classe ListView.SelectedIndexCollection.

Indice

Indice dell'elemento selezionato in ListViewItemCollection

0

1

1

3

2

4

È possibile utilizzare le proprietà e i metodi di questa classe per eseguire diverse attività relative all'insieme. Il metodo Contains consente di determinare se una posizione di indice della classe ListView.ListViewItemCollection rappresenta uno degli indici archiviati nella classe ListView.SelectedIndexCollection. Una volta stabilito che l'elemento si trova nell'insieme, è possibile utilizzare il metodo IndexOf per determinare la posizione dell'indice nell'insieme ListView.SelectedIndexCollection.

Nell'esempio di codice riportato di seguito viene illustrato l'utilizzo dei membri SelectedIndices, SelectedIndexChanged e HeaderStyle e della classe ListView.SelectedIndexCollection. Per eseguire l'esempio, incollare il codice riportato di seguito in un form contenente un oggetto ListView di nome ListView1 e un oggetto TextBox di nome TextBox1. Chiamare il metodo InitializeListView dal costruttore del form o dal gestione eventi Load. Nell'esempio è necessario che il gestore eventi sia associato correttamente all'evento SelectedIndexChanged.

	// This method adds two columns to the ListView, setting the Text 
	// and TextAlign, and Width properties of each ColumnHeader.  The 
	// HeaderStyle property is set to NonClickable since the ColumnClick 
	// event is not handled.  Finally the method adds ListViewItems and 
	// SubItems to each column.
	private void InitializeListView()
	{
		this.ListView1 = new System.Windows.Forms.ListView();
		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.Name = "ListView1";
		this.ListView1.Size = new System.Drawing.Size(292, 130);
		this.ListView1.TabIndex = 0;
		this.ListView1.View = System.Windows.Forms.View.Details;
		this.ListView1.MultiSelect = true;
		this.ListView1.HideSelection = false;
		this.ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable;
		
		ColumnHeader columnHeader1 = new ColumnHeader();
		columnHeader1.Text = "Breakfast Item";
		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.49", "1.49", "1.49"};
		
		for(int count=0; count < foodList.Length; count++)
		{
			ListViewItem listItem = new ListViewItem(foodList[count]);
			listItem.SubItems.Add(foodPrice[count]);
			ListView1.Items.Add(listItem);
		}
		this.Controls.Add(ListView1);
	}
	
...	// Uses the SelectedIndices property to retrieve and tally the  
	// price of the selected menu items.
	private void ListView1_SelectedIndexChanged_UsingIndices(
		object sender, System.EventArgs e)
	{

		ListView.SelectedIndexCollection indexes = 
			this.ListView1.SelectedIndices;
		
		double price = 0.0;
		foreach ( int index in indexes )
		{
			price += Double.Parse(
				this.ListView1.Items[index].SubItems[1].Text);
		}

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

    // This method adds two columns to the ListView, setting the Text 
    // and TextAlign, and Width properties of each ColumnHeader.  The 
    // HeaderStyle property is set to NonClickable since the ColumnClick 
    // event is not handled.  Finally the method adds ListViewItems and 
    // SubItems to each column.
    private void InitializeListView()
    {
        this.listView1 = new System.Windows.Forms.ListView();
        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_Name("listView1");
        this.listView1.set_Size(new System.Drawing.Size(292, 130));
        this.listView1.set_TabIndex(0);
        this.listView1.set_View(System.Windows.Forms.View.Details);
        this.listView1.set_MultiSelect(true);
        this.listView1.set_HideSelection(false);
        this.listView1.set_HeaderStyle(ColumnHeaderStyle.Nonclickable);

        ColumnHeader columnHeader1 = new ColumnHeader();
        columnHeader1.set_Text("Breakfast Item");
        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.49",
            "1.49", "1.49" };

        for (int count = 0; count < foodList.get_Length(); count++) {
            ListViewItem listItem = new ListViewItem(
                foodList.get_Item(count).ToString());
            listItem.get_SubItems().Add(foodPrice.get_Item(count).ToString());
            listView1.get_Items().Add(listItem);
        }
        this.get_Controls().Add(listView1);
    } //InitializeListView
...    // Uses the SelectedIndices property to retrieve and tally the  
    // price of the selected menu items.
    private void listView1_SelectedIndexChanged_UsingIndices(Object sender, 
        System.EventArgs e)
    {
        ListView.SelectedIndexCollection indexes = 
            this.listView1.get_SelectedIndices();

        double price = 0.0;
        for (int iCtr = 0; iCtr < indexes.get_Count(); iCtr++) {
            int index = indexes.get_Item(iCtr);
            price += System.Double.Parse(this.listView1.get_Items().
                get_Item(index).get_SubItems().get_Item(1).get_Text());
        }
        // Output the price to textBox1.
        textBox1.set_Text(System.Convert.ToString(price));
    } //listView1_SelectedIndexChanged_UsingIndices

System.Object
  System.Windows.Forms.ListView.SelectedIndexCollection

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.

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.

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0
Mostra: