ListView.ColumnHeaderCollection Clase

Definición

Representa la colección de encabezados de columna en un control ListView.

public: ref class ListView::ColumnHeaderCollection : System::Collections::IList
public class ListView.ColumnHeaderCollection : System.Collections.IList
[System.ComponentModel.ListBindable(false)]
public class ListView.ColumnHeaderCollection : System.Collections.IList
type ListView.ColumnHeaderCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
[<System.ComponentModel.ListBindable(false)>]
type ListView.ColumnHeaderCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public Class ListView.ColumnHeaderCollection
Implements IList
Herencia
ListView.ColumnHeaderCollection
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se crea un formulario que contiene un ListView control que ordena manualmente los elementos cuando se hace clic en una columna del ListView control. En el ejemplo se define una clase denominada ListViewItemComparer que implementa la System.Collections.IComparer interfaz que realiza la ListViewItem comparación. En el ejemplo se crea una instancia de ListViewItemComparer y se usa para establecer la ListViewItemSorter propiedad del ListView control. La Sort llamada al método en el ColumnClick controlador de eventos usa los métodos definidos en ListViewItemComparer para realizar el tipo de elementos, en función de la columna en la que se hace clic.

#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>

using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
using namespace System::Collections;

// Implements the manual sorting of items by columns.
ref class ListViewItemComparer: public IComparer
{
private:
   int col;

public:
   ListViewItemComparer()
   {
      col = 0;
   }

   ListViewItemComparer( int column )
   {
      col = column;
   }

   virtual int Compare( Object^ x, Object^ y )
   {
      return String::Compare( (dynamic_cast<ListViewItem^>(x))->SubItems[ col ]->Text,
                              (dynamic_cast<ListViewItem^>(y))->SubItems[ col ]->Text );
   }
};

public ref class ListViewSortForm: public Form
{
private:
   ListView^ listView1;

public:
   ListViewSortForm()
   {
      // Create ListView items to add to the control.
      array<String^>^temp0 = {"Banana","a","b","c"};
      ListViewItem^ listViewItem1 = gcnew ListViewItem( temp0,-1,Color::Empty,Color::Yellow,nullptr );
      array<String^>^temp1 = {"Cherry","v","g","t"};
      ListViewItem^ listViewItem2 = gcnew ListViewItem( temp1,-1,Color::Empty,Color::Red,
                 gcnew System::Drawing::Font( "Microsoft Sans Serif",8.25F,FontStyle::Regular,GraphicsUnit::Point,0 ) );
      array<String^>^temp2 = {"Apple","h","j","n"};
      ListViewItem^ listViewItem3 = gcnew ListViewItem( temp2,-1,Color::Empty,Color::Lime,nullptr );
      array<String^>^temp3 = {"Pear","y","u","i"};
      ListViewItem^ listViewItem4 = gcnew ListViewItem( temp3,-1,Color::Empty,Color::FromArgb( 192, 128, 156 ),nullptr );

      //Initialize the ListView control and add columns to it.
      this->listView1 = gcnew ListView;

      // Set the initial sorting type for the ListView.
      this->listView1->Sorting = SortOrder::None;

      // Disable automatic sorting to enable manual sorting.
      this->listView1->View = View::Details;

      // Add columns and set their text.
      this->listView1->Columns->Add( gcnew ColumnHeader );
      this->listView1->Columns[ 0 ]->Text = "Column 1";
      this->listView1->Columns[ 0 ]->Width = 100;
      listView1->Columns->Add( gcnew ColumnHeader );
      listView1->Columns[ 1 ]->Text = "Column 2";
      listView1->Columns->Add( gcnew ColumnHeader );
      listView1->Columns[ 2 ]->Text = "Column 3";
      listView1->Columns->Add( gcnew ColumnHeader );
      listView1->Columns[ 3 ]->Text = "Column 4";

      // Suspend control logic until form is done configuring form.
      this->SuspendLayout();

      // Add Items to the ListView control.
      array<ListViewItem^>^temp4 = {listViewItem1,listViewItem2,listViewItem3,listViewItem4};
      this->listView1->Items->AddRange( temp4 );

      // Set the location and size of the ListView control.
      this->listView1->Location = Point(10,10);
      this->listView1->Name = "listView1";
      this->listView1->Size = System::Drawing::Size( 300, 100 );
      this->listView1->TabIndex = 0;

      // Enable editing of the items in the ListView.
      this->listView1->LabelEdit = true;

      // Connect the ListView::ColumnClick event to the ColumnClick event handler.
      this->listView1->ColumnClick += gcnew ColumnClickEventHandler( this, &ListViewSortForm::ColumnClick );

      // Initialize the form.
      this->ClientSize = System::Drawing::Size( 400, 400 );
      array<Control^>^temp5 = {this->listView1};
      this->Controls->AddRange( temp5 );
      this->Name = "ListViewSortForm";
      this->Text = "Sorted ListView Control";

      // Resume lay[Out] of* the form.
      this->ResumeLayout( false );
   }

private:

   // ColumnClick event handler.
   void ColumnClick( Object^ /*o*/, ColumnClickEventArgs^ e )
   {
      // Set the ListViewItemSorter property to a new ListViewItemComparer 
      // object. Setting this property immediately sorts the 
      // ListView using the ListViewItemComparer object.
      this->listView1->ListViewItemSorter = gcnew ListViewItemComparer( e->Column );
   }
};

[System::STAThreadAttribute]
int main()
{
   Application::Run( gcnew ListViewSortForm );
}
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Collections;

namespace ListViewSortFormNamespace
{

    public class ListViewSortForm : Form
    {
        private ListView listView1;
       
        public ListViewSortForm()
        {
            // Create ListView items to add to the control.
            ListViewItem listViewItem1 = new ListViewItem(new string[] {"Banana","a","b","c"}, -1, Color.Empty, Color.Yellow, null);
            ListViewItem listViewItem2 = new ListViewItem(new string[] {"Cherry","v","g","t"}, -1, Color.Empty, Color.Red, new Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular, GraphicsUnit.Point, ((System.Byte)(0))));
            ListViewItem listViewItem3 = new ListViewItem(new string[] {"Apple","h","j","n"}, -1, Color.Empty, Color.Lime, null);
            ListViewItem listViewItem4 = new ListViewItem(new string[] {"Pear","y","u","i"}, -1, Color.Empty, Color.FromArgb(((System.Byte)(192)), ((System.Byte)(128)), ((System.Byte)(156))), null);
     
            //Initialize the ListView control and add columns to it.
            this.listView1 = new ListView();

            // Set the initial sorting type for the ListView.
            this.listView1.Sorting = SortOrder.None;
            // Disable automatic sorting to enable manual sorting.
            this.listView1.View = View.Details;
            // Add columns and set their text.
            this.listView1.Columns.Add(new ColumnHeader());
            this.listView1.Columns[0].Text = "Column 1";
            this.listView1.Columns[0].Width = 100;
            listView1.Columns.Add(new ColumnHeader());
            listView1.Columns[1].Text = "Column 2";
            listView1.Columns.Add(new ColumnHeader());
            listView1.Columns[2].Text = "Column 3";
            listView1.Columns.Add(new ColumnHeader());
            listView1.Columns[3].Text = "Column 4";
            // Suspend control logic until form is done configuring form.
            this.SuspendLayout();
            // Add Items to the ListView control.
            this.listView1.Items.AddRange(new ListViewItem[] {listViewItem1,
                listViewItem2,
                listViewItem3,
                listViewItem4});
            // Set the location and size of the ListView control.
            this.listView1.Location = new Point(10, 10);
            this.listView1.Name = "listView1";
            this.listView1.Size = new Size(300, 100);
            this.listView1.TabIndex = 0;
            // Enable editing of the items in the ListView.
            this.listView1.LabelEdit = true;
            // Connect the ListView.ColumnClick event to the ColumnClick event handler.
            this.listView1.ColumnClick += new ColumnClickEventHandler(ColumnClick);
            
            // Initialize the form.
            this.ClientSize = new Size(400, 400);
            this.Controls.AddRange(new Control[] {this.listView1});
            this.Name = "ListViewSortForm";
            this.Text = "Sorted ListView Control";
            // Resume layout of the form.
            this.ResumeLayout(false);
        }

        // ColumnClick event handler.
        private void ColumnClick(object o, ColumnClickEventArgs e)
        {
            // Set the ListViewItemSorter property to a new ListViewItemComparer 
            // object. Setting this property immediately sorts the 
            // ListView using the ListViewItemComparer object.
            this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column);
        }

        [System.STAThreadAttribute()]
        public static void Main()
        {
            Application.Run(new ListViewSortForm());
        }
    }

    // Implements the manual sorting of items by columns.
    class ListViewItemComparer : IComparer
    {
        private int col;
        public ListViewItemComparer()
        {
            col = 0;
        }
        public ListViewItemComparer(int column)
        {
            col = column;
        }
        public int Compare(object x, object y)
        {
            return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
        }
    }
}
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Collections


Namespace ListViewSortFormNamespace

    Public Class ListViewSortForm
        Inherits Form

        Private listView1 As ListView

        Public Sub New()
            ' Create ListView items to add to the control.
            Dim listViewItem1 As New ListViewItem(New String() {"Banana", "a", "b", "c"}, -1, Color.Empty, Color.Yellow, Nothing)
            Dim listViewItem2 As New ListViewItem(New String() {"Cherry", "v", "g", "t"}, -1, Color.Empty, Color.Red, New Font("Microsoft Sans Serif", 8.25F, FontStyle.Regular, GraphicsUnit.Point, CType(0, System.Byte)))
            Dim listViewItem3 As New ListViewItem(New String() {"Apple", "h", "j", "n"}, -1, Color.Empty, Color.Lime, Nothing)
            Dim listViewItem4 As New ListViewItem(New String() {"Pear", "y", "u", "i"}, -1, Color.Empty, Color.FromArgb(CType(192, System.Byte), CType(128, System.Byte), CType(156, System.Byte)), Nothing)

            'Initialize the ListView control and add columns to it.
            Me.listView1 = New ListView

            ' Set the initial sorting type for the ListView.
            Me.listView1.Sorting = SortOrder.None
            ' Disable automatic sorting to enable manual sorting.
            Me.listView1.View = View.Details
            ' Add columns and set their text.
            Me.listView1.Columns.Add(New ColumnHeader)
            Me.listView1.Columns(0).Text = "Column 1"
            Me.listView1.Columns(0).Width = 100
            listView1.Columns.Add(New ColumnHeader)
            listView1.Columns(1).Text = "Column 2"
            listView1.Columns.Add(New ColumnHeader)
            listView1.Columns(2).Text = "Column 3"
            listView1.Columns.Add(New ColumnHeader)
            listView1.Columns(3).Text = "Column 4"
            ' Suspend control logic until form is done configuring form.
            Me.SuspendLayout()
            ' Add Items to the ListView control.
            Me.listView1.Items.AddRange(New ListViewItem() {listViewItem1, listViewItem2, listViewItem3, listViewItem4})
            ' Set the location and size of the ListView control.
            Me.listView1.Location = New Point(10, 10)
            Me.listView1.Name = "listView1"
            Me.listView1.Size = New Size(300, 100)
            Me.listView1.TabIndex = 0
            ' Enable editing of the items in the ListView.
            Me.listView1.LabelEdit = True
            ' Connect the ListView.ColumnClick event to the ColumnClick event handler.
            AddHandler Me.listView1.ColumnClick, AddressOf ColumnClick

            ' Initialize the form.
            Me.ClientSize = New Size(400, 400)
            Me.Controls.AddRange(New Control() {Me.listView1})
            Me.Name = "ListViewSortForm"
            Me.Text = "Sorted ListView Control"
            ' Resume layout of the form.
            Me.ResumeLayout(False)
        End Sub


        ' ColumnClick event handler.
        Private Sub ColumnClick(ByVal o As Object, ByVal e As ColumnClickEventArgs)
            ' Set the ListViewItemSorter property to a new ListViewItemComparer 
            ' object. Setting this property immediately sorts the 
            ' ListView using the ListViewItemComparer object.
            Me.listView1.ListViewItemSorter = New ListViewItemComparer(e.Column)
        End Sub

    End Class

    ' Implements the manual sorting of items by columns.
    Class ListViewItemComparer
        Implements IComparer

        Private col As Integer

        Public Sub New()
            col = 0
        End Sub

        Public Sub New(ByVal column As Integer)
            col = column
        End Sub

        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
           Implements IComparer.Compare
            Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
        End Function
    End Class
End Namespace

Comentarios

Una ListView.ColumnHeaderCollection clase almacena los encabezados de columna que se muestran en el ListView control cuando la View propiedad se establece Detailsen . ListView.ColumnHeaderCollection Almacena ColumnHeader objetos que definen el texto que se va a mostrar para una columna, así como cómo se muestra el encabezado de columna en el ListView control al mostrar columnas. Cuando se ListView muestran columnas, los elementos y sus subelementos se muestran en sus propias columnas. Para especificar en qué columnas se muestran los datos del subelemento, vea la ListViewItem.ListViewSubItemCollection clase .

Hay varias maneras de agregar encabezados de columna a la colección. El Add método agrega un único encabezado de columna a la colección. Para agregar un número de encabezados de columna a la colección, cree una matriz de ColumnHeader objetos y pásela al AddRange método . Si desea insertar un encabezado de columna en una ubicación específica de la colección, puede usar el Insert método . Para quitar encabezados de columna, puede usar el Remove método o el RemoveAt método si sabe dónde se encuentra el encabezado de columna en la colección. El Clear método permite quitar todos los encabezados de columna de la colección en lugar de usar el Remove método para quitar un único encabezado de columna a la vez.

Además de métodos y propiedades para agregar y quitar encabezados de columna, ListView.ColumnHeaderCollection también proporciona métodos para buscar encabezados de columna en la colección. El Contains método permite determinar si un encabezado de columna es miembro de la colección. Una vez que sepa que el encabezado de columna se encuentra en la colección, puede usar el IndexOf método para determinar dónde se encuentra el encabezado de columna en la colección.

Nota

El comportamiento inesperado puede dar lugar cuando el ancho combinado de todas las columnas supera los 32 768 píxeles.

Constructores

ListView.ColumnHeaderCollection(ListView)

Inicializa una nueva instancia de la clase ListView.ColumnHeaderCollection.

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 encabezado de columna en el índice especificado de la colección.

Item[String]

Obtiene de la colección el encabezado de columna con la clave especificada.

Métodos

Add(ColumnHeader)

Agrega un objeto ColumnHeader existente a la colección.

Add(String)

Crea una columna con el texto especificado y la agrega a la colección.

Add(String, Int32)

Crea una columna con el texto y el ancho especificados y la agrega a la colección.

Add(String, Int32, HorizontalAlignment)

Agrega un encabezado de columna a la colección con los valores de alineación, ancho y texto específicos.

Add(String, String)

Crea una columna con el texto y la clave especificados y la agrega a la colección.

Add(String, String, Int32)

Crea una columna con el texto, la clave y el ancho especificados y la agrega a la colección.

Add(String, String, Int32, HorizontalAlignment, Int32)

Crea una columna con la clave, el texto alineado, el ancho y la imagen especificados, y la agrega a la colección.

Add(String, String, Int32, HorizontalAlignment, String)

Crea una columna con la clave, el texto alineado, el ancho y la clave de imagen especificados, y la agrega a la colección.

AddRange(ColumnHeader[])

Agrega una matriz de encabezados de columna a la colección.

Clear()

Quita todos los encabezados de columna de la colección.

Contains(ColumnHeader)

Determina si el encabezado de columna especificado se encuentra en la colección.

ContainsKey(String)

Determina si una columna con la clave especificada está incluida en la colección.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Devuelve un enumerador que se utilizará para establecer un recorrido en iteración en la colección de encabezados de columna.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IndexOf(ColumnHeader)

Devuelve el índice incluido en la colección del encabezado de columna especificado.

IndexOfKey(String)

Determina el índice de una columna con la clave especificada.

Insert(Int32, ColumnHeader)

Inserta un encabezado de columna existente en la colección, en el índice especificado.

Insert(Int32, String)

Crea un nuevo encabezado de columna con el texto especificado y lo inserta en la colección, en el índice especificado.

Insert(Int32, String, Int32)

Crea un nuevo encabezado de columna con el texto y el ancho inicial especificados y lo inserta en la colección, en el índice especificado.

Insert(Int32, String, Int32, HorizontalAlignment)

Crea un nuevo encabezado de columna y lo inserta en la colección, en el índice especificado.

Insert(Int32, String, String)

Crea un nuevo encabezado de columna con el texto y la clave especificados y lo inserta en la colección, en el índice especificado.

Insert(Int32, String, String, Int32)

Crea un nuevo encabezado de columna con el texto, la clave y el ancho especificados y lo inserta en la colección, en el índice especificado.

Insert(Int32, String, String, Int32, HorizontalAlignment, Int32)

Crea un nuevo encabezado de columna con el texto alineado, la clave, el ancho y el índice de imagen especificados y lo inserta en la colección, en el índice especificado.

Insert(Int32, String, String, Int32, HorizontalAlignment, String)

Crea un nuevo encabezado de columna con el texto alineado, la clave, el ancho y la clave de imagen especificados y lo inserta en la colección, en el índice especificado.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Remove(ColumnHeader)

Quita el encabezado de columna especificado de la colección.

RemoveAt(Int32)

Quita el encabezado de columna en el índice especificado de la colección.

RemoveByKey(String)

Quita de la colección la columna con la clave especificada.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICollection.CopyTo(Array, Int32)

Copia los objetos ColumnHeader de la colección ListView.ColumnHeaderCollection en una matriz, comenzando por un índice determinado de la matriz.

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ListView.ColumnHeaderCollection está sincronizado (es seguro para subprocesos).

ICollection.SyncRoot

Obtiene un objeto que puede utilizarse para sincronizar el acceso a la colección de controles.

IList.Add(Object)

Agrega un objeto ColumnHeader a ListView.

IList.Contains(Object)

Determina si el encabezado de columna 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 incluido en la colección del encabezado de columna especificado.

IList.Insert(Int32, Object)

Inserta un encabezado de columna existente en la colección, en el índice especificado.

IList.IsFixedSize

Obtiene un valor que indica si la interfaz ListView.ColumnHeaderCollection tiene un tamaño fijo.

IList.Item[Int32]

Obtiene o establece el encabezado de columna en el índice especificado de la colección.

IList.Remove(Object)

Quita el encabezado de columna especificado de la colección.

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.

Se aplica a