Este tema aún no ha recibido ninguna valoración - Valorar este tema

ListView.SelectedIndexCollection (Clase)

Actualización: noviembre 2007

Representa la colección que contiene los índices de los elementos seleccionados en un control ListView.

Espacio de nombres:  System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)
[ListBindableAttribute(false)]
public class SelectedIndexCollection : IList, 
	ICollection, IEnumerable
/** @attribute ListBindableAttribute(false) */
public class SelectedIndexCollection implements IList, 
	ICollection, IEnumerable
public class SelectedIndexCollection implements IList, ICollection, IEnumerable

Un ListView.SelectedIndexCollection almacena los índices de los elementos seleccionados en un control ListView. Los índices almacenados en ListView.SelectedIndexCollection son posiciones de índice incluidas en la colección ListView.ListViewItemCollection. El ListView.ListViewItemCollection almacena todos los elementos que se muestran en el control ListView.

En la siguiente tabla se muestra un ejemplo de cómo la colección ListView.ListViewItemCollection almacena los elementos de ListView y presenta 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.SelectedIndexCollection.

Índice

Índice del elemento seleccionado en ListViewItemCollection

0

1

1

3

2

4

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 una posición de índice de la colección ListView.ListViewItemCollection es uno de los índices almacenados en la colección ListView.SelectedIndexCollection. Una vez que sabe que el elemento está en la colección, puede utilizar el método IndexOf para determinar la posición del índice en el ListView.SelectedIndexCollection.

En el ejemplo de código siguiente se muestra cómo usar los miembros SelectedIndices, SelectedIndexChanged y HeaderStyle y la clase ListView.SelectedIndexCollection. Para ejecutar este ejemplo, pegue el siguiente código en un formulario que contenga un control 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 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.
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 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


System.Object
  System.Windows.Forms.ListView.SelectedIndexCollection
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

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, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC

.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.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 3.5, 2.0, 1.0
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar