ListView.SelectedIndexCollection Classe

Definizione

Rappresenta l'insieme che contiene gli indici degli elementi selezionati in un ListView controllo .

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 ListView1 oggetto denominato TextBoxTextBox1 . Chiamare il InitializeListView metodo dal costruttore o Load dal gestore eventi del form. Questo esempio richiede 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 oggetto archivia gli indici agli elementi selezionati in un ListView controllo . Gli indici archiviati in 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 ListView.ListViewItemCollection gli elementi di ListView e ne mostra gli stati di selezione in un esempio ListView.

Indice Elemento Stato di selezione in ListView
0 Item1 Opzione non selezionata
1 Item2 Selezionato
2 Item3 Opzione non selezionata
3 Item4 Selezionato
4 Item5 Selezionato

In base all'esempio ListView.ListViewItemCollection nella tabella precedente, nella tabella seguente viene illustrato come verrebbe visualizzato .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 un'ampia gamma di 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 rilevato che l'elemento si trova nell'insieme, è possibile utilizzare il IndexOf metodo per determinare la posizione dell'indice nell'oggetto ListView.SelectedIndexCollection.

Costruttori

Nome Descrizione
ListView.SelectedIndexCollection(ListView)

Inizializza una nuova istanza della classe ListView.SelectedIndexCollection.

Proprietà

Nome Descrizione
Count

Ottiene il numero di elementi nell'insieme.

IsReadOnly

Ottiene un valore che indica se l'insieme è di sola lettura.

Item[Int32]

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

Metodi

Nome Descrizione
Add(Int32)

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

Clear()

Cancella gli elementi nella raccolta.

Contains(Int32)

Determina se l'indice specificato si trova nella raccolta.

CopyTo(Array, Int32)

Copia l'intera raccolta in una matrice esistente in una posizione specificata all'interno della matrice.

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 di indici selezionato.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
IndexOf(Int32)

Restituisce l'indice all'interno ListView.SelectedIndexCollection dell'oggetto dell'indice specificato dall'oggetto ListView.ListViewItemCollection del ListView controllo .

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Remove(Int32)

Rimuove l'elemento in corrispondenza dell'indice specificato nell'insieme Items dall'oggetto ListView.SelectedIndexCollection.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
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 di controlli.

IList.Add(Object)

Aggiunge un elemento alla raccolta.

IList.Clear()

Rimuove tutti gli elementi dalla raccolta.

IList.Contains(Object)

Determina se l'elemento specificato si trova nella raccolta.

IList.IndexOf(Object)

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

Restituisce l'indice nell'oggetto ListView.SelectedIndexCollection. ListView.SelectedIndexCollection Contiene gli indici degli elementi selezionati nel ListView.ListViewItemCollection 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 ha ListView.SelectedIndexCollection una dimensione fissa.

IList.Item[Int32]

Ottiene o imposta un oggetto nell'insieme.

IList.Remove(Object)

Rimuove la prima occorrenza di un elemento specificato dall'insieme.

IList.RemoveAt(Int32)

Rimuove un elemento dalla raccolta in corrispondenza di un indice specificato.

Metodi di estensione

Nome Descrizione
AsParallel(IEnumerable)

Abilita la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un IEnumerable in un IQueryable.

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un IEnumerable al tipo specificato.

OfType<TResult>(IEnumerable)

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

Si applica a