ListView.SelectedIndexCollection Klasse

Definition

Stellt die Auflistung dar, die die Indizes für die ausgewählten Elemente in einem ListView Steuerelement enthält.

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
Vererbung
ListView.SelectedIndexCollection
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird die Verwendung der SelectedIndicesElemente SelectedIndexChangedund HeaderStyle Member und der ListView.SelectedIndexCollection Klasse veranschaulicht. Zum Ausführen dieses Beispiels fügen Sie den folgenden Code in ein Formular ein, das ein ListView Objekt mit dem Namen ListView1 und einem TextBox benannten TextBox1Objekt enthält. Rufen Sie die InitializeListView Methode aus dem Konstruktor oder Load Ereignishandler des Formulars auf. In diesem Beispiel ist erforderlich, dass der Ereignishandler dem SelectedIndexChanged Ereignis ordnungsgemäß zugeordnet ist.

// 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

Hinweise

A ListView.SelectedIndexCollection speichert die Indizes für die ausgewählten Elemente in einem ListView Steuerelement. Die in den ListView.SelectedIndexCollection Indizes gespeicherten Indizes sind Indexpositionen innerhalb der ListView.ListViewItemCollection. Alle ListView.ListViewItemCollection im Steuerelement angezeigten Elemente werden gespeichert ListView .

Die folgende Tabelle zeigt ein Beispiel dafür, wie die ListView.ListViewItemCollection Elemente der ListView Elemente gespeichert und deren Auswahlzustände in einem Beispiel ListViewangezeigt werden.

Index Element Auswahlstatus in der ListView
0 Eintrag1 Nicht ausgewählt
1 Item2 Ausgewählt
2 Item3 Nicht ausgewählt
3 Element4 Ausgewählt
4 Element5 Ausgewählt

Basierend auf dem ListView.ListViewItemCollection Beispiel in der vorherigen Tabelle veranschaulicht die folgende Tabelle, wie dies ListView.SelectedIndexCollection aussehen würde.

Index Index des ausgewählten Elements in der ListViewItemCollection
0 1
1 3
2 4

Sie können die Eigenschaften und Methoden dieser Klasse verwenden, um eine Vielzahl von Aufgaben mit der Auflistung auszuführen. Mit der Contains Methode können Sie ermitteln, ob eine Indexposition aus dem ListView.ListViewItemCollection Index einer der Indizes ist, die in der ListView.SelectedIndexCollectionIndizes gespeichert sind. Sobald Sie wissen, dass sich das Element in der Auflistung befindet, können Sie die IndexOf Methode verwenden, um die Position des Indexes in der ListView.SelectedIndexCollection.

Konstruktoren

Name Beschreibung
ListView.SelectedIndexCollection(ListView)

Initialisiert eine neue Instanz der ListView.SelectedIndexCollection-Klasse.

Eigenschaften

Name Beschreibung
Count

Ruft die Anzahl der Elemente in der Auflistung ab.

IsReadOnly

Ruft einen Wert ab, der angibt, ob die Auflistung schreibgeschützt ist.

Item[Int32]

Ruft den Indexwert am angegebenen Index innerhalb der Auflistung ab.

Methoden

Name Beschreibung
Add(Int32)

Fügt das Element am angegebenen Index im Items Array der Auflistung hinzu.

Clear()

Löscht die Elemente in der Auflistung.

Contains(Int32)

Bestimmt, ob sich der angegebene Index in der Auflistung befindet.

CopyTo(Array, Int32)

Kopiert die gesamte Auflistung an einer angegebenen Position innerhalb des Arrays in ein vorhandenes Array.

Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, der zum Durchlaufen der ausgewählten Indexauflistung verwendet werden kann.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(Int32)

Gibt den Index innerhalb ListView.SelectedIndexCollection des angegebenen Indexes aus dem ListView.ListViewItemCollection Steuerelement ListView zurück.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
Remove(Int32)

Entfernt das Element am angegebenen Index in der Items Auflistung aus der ListView.SelectedIndexCollection.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die Auflistung synchronisiert wird (Threadsicher).

ICollection.SyncRoot

Ruft ein Objekt ab, das zum Synchronisieren des Zugriffs auf die Auflistung von Steuerelementen verwendet werden kann.

IList.Add(Object)

Fügt der Auflistung ein Element hinzu.

IList.Clear()

Entfernt alle Elemente aus der Auflistung.

IList.Contains(Object)

Bestimmt, ob sich das angegebene Element in der Auflistung befindet.

IList.IndexOf(Object)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt den Index in der ListView.SelectedIndexCollection. Das ListView.SelectedIndexCollection enthält die Indizes der ausgewählten Elemente im ListView.ListViewItemCollectionListView Steuerelement.

IList.Insert(Int32, Object)

Fügt ein Element in die Auflistung bei einem angegebenen Index ein.

IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob die ListView.SelectedIndexCollection Größe fest ist.

IList.Item[Int32]

Dient zum Abrufen oder Festlegen eines Objekts in der Auflistung.

IList.Remove(Object)

Entfernt das erste Vorkommen eines angegebenen Elements aus der Auflistung.

IList.RemoveAt(Int32)

Entfernt ein Element aus der Auflistung bei einem angegebenen Index.

Erweiterungsmethoden

Name Beschreibung
AsParallel(IEnumerable)

Aktiviert die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Wandelt eine IEnumerable in eine IQueryableum.

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um.

OfType<TResult>(IEnumerable)

Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ.

Gilt für: