ListView.SelectedIndices プロパティ
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)

選択された項目のインデックスを格納している ListView.SelectedIndexCollection。項目が現在選択されていない場合は、空の ListView.SelectedIndexCollection が返されます。

ListView ハンドルが作成される前にプロパティにアクセスすると、SelectedIndices プロパティにインデックスが格納されません。インデックスの格納は、通常、フォームに表示するために ListView の初期読み込みが行われたときに発生します。ハンドルが IsHandleCreated プロパティを使用して作成されているかどうかを確認できます。MultiSelect プロパティが true に設定されている場合、このプロパティは ListView 内で選択されているすべての項目のインデックスを格納するコレクションを返します。単一選択の ListView の場合、このプロパティは、ListView 内で選択されている項目のインデックスだけを保持する、単一の要素を格納するコレクションを返します。コレクションの項目で実行できるタスクの詳細については、ListView.SelectedIndexCollection のトピックを参照してください。
選択されている項目のインデックス位置ではなく、ListView コントロールで選択されている項目のコレクションを取得する場合は、SelectedItems プロパティを使用します。

SelectedIndices、SelectedIndexChanged、および HeaderStyle の各メンバと ListView.SelectedIndexCollection クラスを使用するコード例を次に示します。この例を実行するには、ListView1 という名前の ListView オブジェクトと TextBox1 という名前の TextBox が配置されているフォームに次のコードを貼り付けます。そして、フォームのコンストラクタまたはLoad メソッドから InitializeListView メソッドを呼び出します。この例では、イベント ハンドラが正しく 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 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 <br /><span space="preserve">...</span><br /> ' 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
// 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); } <br /><span space="preserve">...</span><br /> // 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. 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 ); } <br /><span space="preserve">...</span><br /> // 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(); }
// 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 <br /><span space="preserve">...</span><br /> // 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

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からListView.SelectedIndices プロパティを検索する場合は、下記のリンクをクリックしてください。

- ListView.SelectedIndices プロパティのページへのリンク