ListView.SelectedIndexCollection Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar samlingen som innehåller indexen för de markerade objekten i en ListView kontroll.
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
- Arv
-
ListView.SelectedIndexCollection
- Attribut
- Implementeringar
Exempel
Följande kodexempel visar hur du använder SelectedIndices, SelectedIndexChangedoch HeaderStyle medlemmar och ListView.SelectedIndexCollection klassen. Om du vill köra det här exemplet klistrar du in följande kod i ett formulär som innehåller ett ListView objekt med namnet ListView1 och ett TextBox med namnet TextBox1.
InitializeListView Anropa metoden från formulärets konstruktor eller Load händelsehanterare. Det här exemplet kräver att händelsehanteraren är korrekt associerad med SelectedIndexChanged händelsen.
// 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
Kommentarer
A ListView.SelectedIndexCollection lagrar indexen till de markerade objekten i en ListView kontroll. Indexen som lagras i ListView.SelectedIndexCollection är indexpositioner inom ListView.ListViewItemCollection. Lagrar ListView.ListViewItemCollection alla objekt som visas i ListView kontrollen.
I följande tabell visas ett exempel på hur ListView.ListViewItemCollection objekten ListView i och visar deras urvalstillstånd i ett exempel ListView.
| Index | Objekt | Markeringstillstånd i ListView |
|---|---|---|
| 0 | Objekt1 | Inte valt |
| 1 | Item2 | Markerade |
| 2 | Objekt 3 | Inte valt |
| 3 | Objekt4 | Markerade |
| 4 | Objekt 5 | Markerade |
Baserat på exemplet ListView.ListViewItemCollection i föregående tabell visar följande tabell hur det ListView.SelectedIndexCollection skulle se ut.
| Index | Index för markerat objekt i ListViewItemCollection |
|---|---|
| 0 | 1 |
| 1 | 3 |
| 2 | 4 |
Du kan använda egenskaperna och metoderna för den här klassen för att utföra en mängd olika uppgifter med samlingen. Med Contains metoden kan du avgöra om en indexposition från ListView.ListViewItemCollection är ett av indexen som lagras i ListView.SelectedIndexCollection. När du vet att objektet finns i samlingen kan du använda IndexOf metoden för att fastställa indexets position i ListView.SelectedIndexCollection.
Konstruktorer
| Name | Description |
|---|---|
| ListView.SelectedIndexCollection(ListView) |
Initierar en ny instans av ListView.SelectedIndexCollection klassen. |
Egenskaper
| Name | Description |
|---|---|
| Count |
Hämtar antalet objekt i samlingen. |
| IsReadOnly |
Hämtar ett värde som anger om samlingen är skrivskyddad. |
| Item[Int32] |
Hämtar indexvärdet vid det angivna indexet i samlingen. |
Metoder
| Name | Description |
|---|---|
| Add(Int32) |
Lägger till objektet i det angivna indexet i matrisen Items i samlingen. |
| Clear() |
Rensar objekten i samlingen. |
| Contains(Int32) |
Avgör om det angivna indexet finns i samlingen. |
| CopyTo(Array, Int32) |
Kopierar hela samlingen till en befintlig matris på en angiven plats i matrisen. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetEnumerator() |
Returnerar en uppräknare som kan användas för att iterera genom den valda indexsamlingen. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IndexOf(Int32) |
Returnerar indexet i det ListView.SelectedIndexCollection angivna indexet från ListView.ListViewItemCollectionListView kontrollen. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| Remove(Int32) |
Tar bort objektet vid det angivna indexet Items i samlingen från ListView.SelectedIndexCollection. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICollection.IsSynchronized |
Hämtar ett värde som anger om åtkomsten till samlingen synkroniseras (trådsäker). |
| ICollection.SyncRoot |
Hämtar ett objekt som kan användas för att synkronisera åtkomst till samlingen med kontroller. |
| IList.Add(Object) |
Lägger till ett objekt i samlingen. |
| IList.Clear() |
Tar bort alla objekt från samlingen. |
| IList.Contains(Object) |
Avgör om det angivna objektet finns i samlingen. |
| IList.IndexOf(Object) |
Detta API stöder produktinfrastrukturen och är inte avsett att användas direkt från koden. Returnerar indexet ListView.SelectedIndexCollectioni . ListView.SelectedIndexCollection Innehåller indexen för markerade objekt i ListView.ListViewItemCollectionListView kontrollen. |
| IList.Insert(Int32, Object) |
Infogar ett objekt i samlingen vid ett angivet index. |
| IList.IsFixedSize |
Hämtar ett värde som anger om har ListView.SelectedIndexCollection en fast storlek. |
| IList.Item[Int32] |
Hämtar eller anger ett objekt i samlingen. |
| IList.Remove(Object) |
Tar bort den första förekomsten av ett angivet objekt från samlingen. |
| IList.RemoveAt(Int32) |
Tar bort ett objekt från samlingen vid ett angivet index. |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Möjliggör parallellisering av en fråga. |
| AsQueryable(IEnumerable) |
Konverterar en IEnumerable till en IQueryable. |
| Cast<TResult>(IEnumerable) |
Omvandlar elementen i en IEnumerable till den angivna typen. |
| OfType<TResult>(IEnumerable) |
Filtrerar elementen i en IEnumerable baserat på en angiven typ. |