ListView.SelectedListViewItemCollection (Clase)
Actualización: noviembre 2007
Representa la colección de elementos seleccionados en un control de vista de lista.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
Un ListView.SelectedListViewItemCollection almacena los elementos seleccionados en un control ListView. Los elementos incluidos en la colección ListView.SelectedListViewItemCollection son elementos que pertenecen también a la colección ListView.ListViewItemCollection. El ListView.ListViewItemCollection almacena todos los elementos que se muestran en el ListView.
En la siguiente tabla se muestra un ejemplo de cómo la colección ListView.ListViewItemCollection almacena los elementos de ListView y sus estados de selección en un control ListView de ejemplo.
|
Índice |
Elemento |
Estado de selección en el ListView |
|---|---|---|
|
0 |
Elemento1 |
No seleccionado |
|
1 |
Elemento2 |
Seleccionado |
|
2 |
Elemento3 |
No seleccionado |
|
3 |
Elemento4 |
Seleccionado |
|
4 |
Elemento5 |
Seleccionado |
Basándose en el ejemplo de la colección ListView.ListViewItemCollection de la tabla anterior, en la siguiente tabla se muestra cómo aparecería la colección ListView.SelectedListViewItemCollection.
|
Índice |
Elemento seleccionado en el ListViewItemCollection |
|---|---|
|
0 |
Elemento2 |
|
1 |
Elemento4 |
|
2 |
Elemento5 |
Los métodos y propiedades de esta clase se pueden utilizar para realizar diversas tareas con la colección. El método Contains permite determinar si un elemento de la clase ListView.ListViewItemCollection es miembro de la colección ListView.SelectedListViewItemCollection. Una vez que se sabe que el elemento está en la colección, se puede utilizar el método IndexOf para determinar la posición del elemento en la colección ListView.SelectedListViewItemCollection.
En el siguiente ejemplo de código se muestra cómo usar la propiedad SelectedItems, el evento SelectedIndexChanged, los miembros de HeaderStyle y la clase ListView.SelectedListViewItemCollection. Para ejecutar este ejemplo, pegue el siguiente código en un formulario que contenga un objeto ListView denominado ListView1 y un control TextBox denominado TextBox1. Llame al método InitializeListView desde el controlador de eventos Load o el constructor del formulario. Este ejemplo exige que el controlador de eventos esté correctamente asociado al evento 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 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); } ... // Uses the SelectedItems property to retrieve and tally the price // of the selected menu items. private void ListView1_SelectedIndexChanged_UsingItems( object sender, System.EventArgs e) { ListView.SelectedListViewItemCollection breakfast = this.ListView1.SelectedItems; double price = 0.0; foreach ( ListViewItem item in breakfast ) { price += Double.Parse(item.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
...
// Uses the SelectedItems property to retrieve and tally the price
// of the selected menu items.
private void listView1_SelectedIndexChanged_UsingItems(Object sender,
System.EventArgs e)
{
ListView.SelectedListViewItemCollection breakfast =
this.listView1.get_SelectedItems();
double price = 0.0;
for (int iCtr = 0; iCtr < breakfast.get_Count(); iCtr++) {
ListViewItem item = breakfast.get_Item(iCtr);
price += System.Double.Parse(item.get_SubItems().get_Item(1).
get_Text().ToString());
}
// Output the price to textBox1.
textBox1.set_Text(System.Convert.ToString(price));
} //listView1_SelectedIndexChanged_UsingItems
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.