Condividi tramite


ListView.SelectedIndexCollection Classe

Definizione

Rappresenta la raccolta che contiene gli indici per gli elementi selezionati in un controllo ListView.

public: ref class ListView::SelectedIndexCollection : System::Collections::IList
public class ListView.SelectedIndexCollection : System.Collections.IList
[System.ComponentModel.ListBindable(false)]
public class ListView.SelectedIndexCollection : System.Collections.IList
type ListView.SelectedIndexCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
[<System.ComponentModel.ListBindable(false)>]
type ListView.SelectedIndexCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public Class ListView.SelectedIndexCollection
Implements IList
Ereditarietà
ListView.SelectedIndexCollection
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come usare i SelectedIndicesmembri , SelectedIndexChangede e HeaderStyle la ListView.SelectedIndexCollection classe . Per eseguire questo esempio, incollare il codice seguente in un modulo contenente un ListView oggetto denominato e un TextBox oggetto denominato TextBox1ListView1 . Chiamare il InitializeListView metodo dal costruttore o Load dal gestore eventi del modulo. In questo 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.
void InitializeListView()
{
   this->ListView1 = gcnew System::Windows::Forms::ListView;
   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->Name = "ListView1";
   this->ListView1->Size = 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 = gcnew ColumnHeader;
   columnHeader1->Text = "Breakfast Item";
   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.49","1.49","1.49"};
   for ( int count = 0; count < foodList->Length; count++ )
   {
      ListViewItem^ listItem = gcnew ListViewItem( foodList[ count ] );
      listItem->SubItems->Add( foodPrice[ count ] );
      ListView1->Items->Add( listItem );

   }
   this->Controls->Add( ListView1 );
}
  // 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);
  }
' 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 Sub InitializeListView()
    Me.ListView1 = New System.Windows.Forms.ListView
    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.Name = "ListView1"
    Me.ListView1.Size = New System.Drawing.Size(292, 130)
    Me.ListView1.TabIndex = 0
    Me.ListView1.View = System.Windows.Forms.View.Details
    Me.ListView1.MultiSelect = True
    Me.ListView1.HideSelection = False
    ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
    Dim columnHeader1 As New ColumnHeader
    With columnHeader1
        .Text = "Breakfast Item"
        .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.49", "1.49", "1.49"}
    Dim count As Integer
    For count = 0 To foodList.Length - 1
        Dim listItem As New ListViewItem(foodList(count))
        listItem.SubItems.Add(foodPrice(count))
        ListView1.Items.Add(listItem)
    Next
    Me.Controls.Add(Me.ListView1)
End Sub
// Uses the SelectedIndices property to retrieve and tally the  
// price of the selected menu items.
void ListView1_SelectedIndexChanged_UsingIndices( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
   ListView::SelectedIndexCollection^ indexes = this->ListView1->SelectedIndices;
   double price = 0.0;
   System::Collections::IEnumerator^ myEnum1 = indexes->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      int index = safe_cast<int>(myEnum1->Current);
      price += Double::Parse( this->ListView1->Items[ index ]->SubItems[ 1 ]->Text );
   }

   
   // Output the price to TextBox1.
   TextBox1->Text = price.ToString();
}
// 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();
}
' Uses the SelectedIndices property to retrieve and tally the price of  
' the selected menu items.
Private Sub ListView1_SelectedIndexChanged_UsingIndices _
    (ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles ListView1.SelectedIndexChanged

    Dim indexes As ListView.SelectedIndexCollection = _
        Me.ListView1.SelectedIndices
    Dim index As Integer
    Dim price As Double = 0.0
    For Each index In indexes
        price += Double.Parse(Me.ListView1.Items(index).SubItems(1).Text)
    Next

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

Commenti

Un ListView.SelectedIndexCollection archivia gli indici agli elementi selezionati in un ListView controllo. Gli indici archiviati nell'oggetto ListView.SelectedIndexCollection sono posizioni di indice all'interno di ListView.ListViewItemCollection. Archivia ListView.ListViewItemCollection tutti gli elementi visualizzati nel ListView controllo.

Nella tabella seguente viene illustrato un esempio di come archivia gli elementi dell'oggetto ListView.ListViewItemCollectionListView e mostra gli stati di selezione in un esempio ListView.

Indice Elemento Stato di selezione in ListView
0 Item1 Deselezionato
1 Item2 Opzione selezionata
2 Item3 Deselezionato
3 Elemento4 Opzione selezionata
4 Elemento5 Opzione selezionata

In base all'esempio nella tabella precedente, la ListView.ListViewItemCollection tabella seguente illustra la modalità di visualizzazione dell'oggetto ListView.SelectedIndexCollection .

Indice Indice dell'elemento selezionato in ListViewItemCollection
0 1
1 3
2 4

È possibile usare le proprietà e i metodi di questa classe per eseguire diverse attività con la raccolta. Il Contains metodo consente di determinare se una posizione di indice da ListView.ListViewItemCollection è uno degli indici archiviati in ListView.SelectedIndexCollection. Dopo aver appreso che l'elemento si trova nella raccolta, è possibile usare il IndexOf metodo per determinare la posizione dell'indice nell'oggetto ListView.SelectedIndexCollection.

Costruttori

ListView.SelectedIndexCollection(ListView)

Inizializza una nuova istanza della classe ListView.SelectedIndexCollection.

Proprietà

Count

Ottiene il numero di elementi nella raccolta.

IsReadOnly

Ottiene un valore che indica se la raccolta è di sola lettura.

Item[Int32]

Ottiene il valore di indice in corrispondenza dell'indice specificato all'interno dell'insieme.

Metodi

Add(Int32)

Aggiunge l'elemento nell'insieme in corrispondenza dell'indice specificato nella matrice Items.

Clear()

Cancella gli elementi contenuti nell'insieme.

Contains(Int32)

Consente di determinare se l'indice specificato è contenuto nell'insieme.

CopyTo(Array, Int32)

Copia l'intero insieme in una posizione specifica all'interno di una matrice esistente.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetEnumerator()

Restituisce un enumeratore che può essere utilizzato per scorrere l'insieme degli indici selezionato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IndexOf(Int32)

Restituisce l'indice all'interno della classe ListView.SelectedIndexCollection dell'indice specificato dalla classe ListView.ListViewItemCollection del controllo ListView.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Remove(Int32)

Rimuove l'elemento in corrispondenza dell'indice specificato nell'insieme Items dalla classe ListView.SelectedIndexCollection.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso alla raccolta è sincronizzato (thread-safe).

ICollection.SyncRoot

Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso all'insieme dei controlli.

IList.Add(Object)

Aggiunge un elemento alla raccolta.

IList.Clear()

Rimuove tutti gli elementi dalla raccolta.

IList.Contains(Object)

Consente di determinare se l'elemento specificato è contenuto nell'insieme.

IList.IndexOf(Object)

Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice.

Restituisce l'indice nella classe ListView.SelectedIndexCollection. La classe ListView.SelectedIndexCollection contiene gli indici degli elementi selezionati nella classe ListView.ListViewItemCollection del controllo ListView.

IList.Insert(Int32, Object)

Inserisce un elemento nella raccolta in corrispondenza di un indice specificato.

IList.IsFixedSize

Ottiene un valore che indica se ListView.SelectedIndexCollection ha dimensioni fisse.

IList.Item[Int32]

Ottiene o imposta un oggetto nell'insieme.

IList.Remove(Object)

Rimuove dalla raccolta la prima occorrenza dell'elemento specificato.

IList.RemoveAt(Int32)

Rimuove un elemento dall'insieme in corrispondenza dell'indice specificato.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a