ListView.SelectedIndexCollection Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa la colección que contiene los índices de los elementos seleccionados en un control ListView.
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
- Herencia
-
ListView.SelectedIndexCollection
- Atributos
- Implementaciones
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar los SelectedIndicesmiembros , SelectedIndexChangedy y HeaderStyle la ListView.SelectedIndexCollection clase . Para ejecutar este ejemplo, pegue el código siguiente en un formulario que contenga un ListView objeto denominado ListView1
y un TextBox denominado TextBox1
. Llame al InitializeListView
método desde el constructor o Load el controlador de eventos del formulario. En este ejemplo se requiere que el controlador de eventos esté asociado correctamente al SelectedIndexChanged evento.
// 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
Comentarios
Un ListView.SelectedIndexCollection almacena los índices en los elementos seleccionados en un ListView control . Los índices almacenados en ListView.SelectedIndexCollection son posiciones de índice dentro de ListView.ListViewItemCollection. ListView.ListViewItemCollection almacena todos los elementos que se muestran en el ListView control .
En la tabla siguiente se muestra un ejemplo de cómo ListView.ListViewItemCollection almacena los elementos de y muestra sus estados de ListView selección en un ejemplo ListView.
Índice | Elemento | Estado de selección en ListView |
---|---|---|
0 | Item1 | No seleccionado |
1 | Item2 | Seleccionado |
2 | Item3 | No seleccionado |
3 | Item4 | Seleccionado |
4 | Item5 | Seleccionado |
En función del ListView.ListViewItemCollection ejemplo de la tabla anterior, en la tabla siguiente se muestra cómo aparecería .ListView.SelectedIndexCollection
Índice | Índice del elemento seleccionado en listViewItemCollection |
---|---|
0 | 1 |
1 | 3 |
2 | 4 |
Puede usar las propiedades y los métodos de esta clase para realizar diversas tareas con la colección. El Contains método permite determinar si una posición de índice de ListView.ListViewItemCollection es uno de los índices almacenados en .ListView.SelectedIndexCollection Una vez que sepa que el elemento está en la colección, puede usar el IndexOf método para determinar la posición del índice en ListView.SelectedIndexCollection.
Constructores
ListView.SelectedIndexCollection(ListView) |
Inicializa una nueva instancia de la clase ListView.SelectedIndexCollection. |
Propiedades
Count |
Obtiene el número de elementos de la colección. |
IsReadOnly |
Obtiene un valor que indica si la colección es de solo lectura. |
Item[Int32] |
Obtiene el valor del índice en el índice especificado de la colección. |
Métodos
Add(Int32) |
Agrega a la colección el elemento con el índice especificado de la matriz Items. |
Clear() |
Borra los elementos de la colección. |
Contains(Int32) |
Determina si el índice especificado se encuentra en la colección. |
CopyTo(Array, Int32) |
Copia toda la colección en una matriz existente, en un lugar especificado de la matriz. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetEnumerator() |
Devuelve un enumerador que se puede utilizar para procesar un recorrido en iteración en la colección de índices seleccionados. |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IndexOf(Int32) |
Devuelve el índice incluido en la colección ListView.SelectedIndexCollection del índice especificado de la colección ListView.ListViewItemCollection del control ListView. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
Remove(Int32) |
Quita de la colección Items el elemento situado en el índice especificado de la colección ListView.SelectedIndexCollection. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
ICollection.IsSynchronized |
Obtiene un valor que indica si el acceso a la colección está sincronizado (es seguro para la ejecución de subprocesos). |
ICollection.SyncRoot |
Obtiene un objeto que puede utilizarse para sincronizar el acceso a la colección de controles. |
IList.Add(Object) |
Agrega un elemento a la colección. |
IList.Clear() |
Quita todos los elementos de la colección. |
IList.Contains(Object) |
Determina si el elemento especificado se encuentra en la colección. |
IList.IndexOf(Object) |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Devuelve el índice de ListView.SelectedIndexCollection. ListView.SelectedIndexCollection contiene los índices de los elementos seleccionados en la colección ListView.ListViewItemCollection del control ListView. |
IList.Insert(Int32, Object) |
Inserta un elemento en el índice especificado de la colección. |
IList.IsFixedSize |
Obtiene un valor que indica si la interfaz ListView.SelectedIndexCollection tiene un tamaño fijo. |
IList.Item[Int32] |
Obtiene o establece un objeto de la colección. |
IList.Remove(Object) |
Quita la primera aparición de un elemento especificado de la colección. |
IList.RemoveAt(Int32) |
Quita un elemento de la colección en un índice especificado. |
Métodos de extensión
Cast<TResult>(IEnumerable) |
Convierte los elementos de IEnumerable en el tipo especificado. |
OfType<TResult>(IEnumerable) |
Filtra los elementos de IEnumerable en función de un tipo especificado. |
AsParallel(IEnumerable) |
Habilita la paralelización de una consulta. |
AsQueryable(IEnumerable) |
Convierte una interfaz IEnumerable en IQueryable. |