ListView.SelectedIndexCollection クラス


ListView コントロール内の選択された項目のインデックスを格納するコレクションを表します。Represents the collection that contains the indexes to the selected items in a ListView control.

public: ref class ListView::SelectedIndexCollection : System::Collections::IList
public class ListView.SelectedIndexCollection : System.Collections.IList
public class ListView.SelectedIndexCollection : System.Collections.IList
type ListView.SelectedIndexCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public Class ListView.SelectedIndexCollection
Implements IList

次のコード例は、SelectedIndicesSelectedIndexChanged、および HeaderStyle メンバーと ListView.SelectedIndexCollection クラスを使用する方法を示しています。The following code example demonstrates how to use the SelectedIndices, SelectedIndexChanged, and HeaderStyle members and the ListView.SelectedIndexCollection class. この例を実行するには、ListView1 という名前の ListView オブジェクトと TextBox1という名前の TextBox を含むフォームに次のコードを貼り付けます。To run this example, paste the following code into a form that contains a ListView object named ListView1 and a TextBox named TextBox1. フォームのコンストラクターまたは Load イベントハンドラーから InitializeListView メソッドを呼び出します。Call the InitializeListView method from the form's constructor or Load event handler. この例では、イベントハンドラーが SelectedIndexChanged イベントに正しく関連付けられている必要があります。This example requires that the event handler is correctly associated with the SelectedIndexChanged event.

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


      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]);
' 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

    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))
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 = 
    double price = 0.0;
    foreach ( int index in indexes )
        price += Double.Parse(

    // 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 = _
    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)

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


ListView.SelectedIndexCollection は、ListView コントロール内の選択された項目にインデックスを格納します。A ListView.SelectedIndexCollection stores the indexes to the selected items in a ListView control. ListView.SelectedIndexCollection に格納されているインデックスは、ListView.ListViewItemCollection内のインデックス位置です。The indexes stored in the ListView.SelectedIndexCollection are index positions within the ListView.ListViewItemCollection. ListView.ListViewItemCollection は、ListView コントロールに表示されるすべての項目を格納します。The ListView.ListViewItemCollection stores all items displayed in the ListView control.

次の表は、ListView.ListViewItemCollectionListView の項目を格納し、その選択状態を ListView例で示す方法の例を示しています。The following table shows an example of how the ListView.ListViewItemCollection stores the items of the ListView and shows their selection states in an example ListView.

インデックスIndex アイテムItem ListView の選択状態Selection state in the ListView
00 項目 1Item1 未選択Unselected
11 Item2Item2 SelectedSelected
22 Item3Item3 未選択Unselected
33 Tuple.item4Item4 SelectedSelected
44 Tuple.item5Item5 SelectedSelected

次の表は、前の表の ListView.ListViewItemCollection の例に基づいて、ListView.SelectedIndexCollection がどのように表示されるかを示しています。Based on the ListView.ListViewItemCollection example in the previous table, the following table demonstrates how the ListView.SelectedIndexCollection would appear.

インデックスIndex ListViewItemCollection 内の選択された項目のインデックスIndex of selected item in the ListViewItemCollection
00 11
11 33
22 44

このクラスのプロパティとメソッドを使用して、コレクションに対してさまざまなタスクを実行できます。You can use the properties and methods of this class to perform a variety of tasks with the collection. Contains メソッドを使用すると、ListView.ListViewItemCollection のインデックス位置が ListView.SelectedIndexCollectionに格納されているインデックスの1つかどうかを判断できます。The Contains method enables you to determine whether an index position from the ListView.ListViewItemCollection is one of the indexes stored in the ListView.SelectedIndexCollection. 項目がコレクション内にあることを確認したら、IndexOf メソッドを使用して、ListView.SelectedIndexCollection内のインデックスの位置を確認できます。Once you know that the item is in the collection, you can use the IndexOf method to determine the position of the index in the ListView.SelectedIndexCollection.



ListView.SelectedIndexCollection クラスの新しいインスタンスを初期化します。Initializes a new instance of the ListView.SelectedIndexCollection class.



コレクションに含まれるアイテムの数を取得します。Gets the number of items in the collection.


コレクションが読み取り専用かどうかを示す値を取得します。Gets a value indicating whether the collection is read-only.


コレクション内の指定したインデックスにあるインデックス値を取得します。Gets the index value at the specified index within the collection.



コレクションに、Items 配列内の指定したインデックス位置にある項目を追加します。Adds the item at the specified index in the Items array to the collection.


コレクション内の項目を削除します。Clears the items in the collection.


指定したインデックスがコレクション内にあるかどうかを判断します。Determines whether the specified index is located in the collection.

CopyTo(Array, Int32)

コレクション全体を既存の配列内の指定した位置にコピーします。Copies the entire collection into an existing array at a specified location within the array.


指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)

選択されているインデックスのコレクションを反復処理するために使用する、列挙子を返します。Returns an enumerator that can be used to iterate through the selected index collection.


既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

ListView.SelectedIndexCollection コントロールの ListView.ListViewItemCollection 内で指定されたインデックスについて、ListView 内におけるインデックスを返します。Returns the index within the ListView.SelectedIndexCollection of the specified index from the ListView.ListViewItemCollection of the ListView control.


現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

Items コレクション内の指定されたインデックス位置にある項目を、ListView.SelectedIndexCollection から削除します。Removes the item at the specified index in the Items collection from the ListView.SelectedIndexCollection.


現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)



コレクションへのアクセスが同期されるかどうか (スレッドセーフかどうか) を示す値を取得します。Gets a value indicating whether access to the collection is synchronized (thread safe).


コントロールのコレクションへのアクセスを同期するために使用できるオブジェクトを取得します。Gets an object that can be used to synchronize access to the collection of controls.


コレクションにアイテムを追加します。Adds an item to the collection.


すべてのアイテムをコレクションから削除します。Removes all items from the collection.


指定した項目がコレクション内にあるかどうかを判断します。Determines whether the specified item is located in the collection.


ListView.SelectedIndexCollection のインデックスを返します。Returns the index in the ListView.SelectedIndexCollection. ListView.SelectedIndexCollection には、ListView.ListViewItemCollection コントロールの ListView で選択されている項目のインデックスが格納されています。The ListView.SelectedIndexCollection contains the indexes of selected items in the ListView.ListViewItemCollection of the ListView control.

IList.Insert(Int32, Object)

コレクション内の指定したインデックスの位置に項目を挿入します。Inserts an item into the collection at a specified index.


ListView.SelectedIndexCollection が固定サイズかどうかを示す値を取得します。Gets a value indicating whether the ListView.SelectedIndexCollection has a fixed size.


コレクション内のオブジェクトを取得または設定します。Gets or sets an object in the collection.


指定した項目のうち最初に見つかった項目をコレクションから削除します。Removes the first occurrence of a specified item from the collection.


コレクション内の指定したインデックスの項目を削除します。Removes an item from the collection at a specified index.



IEnumerable の要素を、指定した型にキャストします。Casts the elements of an IEnumerable to the specified type.


指定された型に基づいて IEnumerable の要素をフィルター処理します。Filters the elements of an IEnumerable based on a specified type.


クエリの並列化を有効にします。Enables parallelization of a query.


IEnumerableIQueryable に変換します。Converts an IEnumerable to an IQueryable.