ListView.ColumnHeaderCollection Clase

Definición

Representa la colección de encabezados de columna en un control ListView.Represents the collection of column headers in a ListView control.

public: ref 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
Public Class ListView.ColumnHeaderCollection
Implements IList
Herencia
ListView.ColumnHeaderCollection
Atributos
Implementaciones

Ejemplos

En el ejemplo de código siguiente se crea un formulario ListView que contiene un control que ordena manualmente los elementos cuando ListView se hace clic en una columna del control.The following code example creates a form that contains a ListView control that manually sorts items when a column in the ListView control is clicked. En el ejemplo se define una ListViewItemComparer clase denominada que implementa System.Collections.IComparer la interfaz que realiza ListViewItem la comparación.The example defines a class called ListViewItemComparer that implements the System.Collections.IComparer interface that performs the ListViewItem comparison. En el ejemplo se crea una ListViewItemComparer instancia de y se utiliza para ListViewItemSorter establecer la propiedad ListView del control.The example creates an instance of ListViewItemComparer and uses it to set the ListViewItemSorter property of the ListView control. La Sort llamada al método en ColumnClick el controlador de eventos utiliza los métodos ListViewItemComparer definidos en para realizar la ordenación de los elementos, en función de la columna en la que se hace clic.The Sort method call in the ColumnClick event handler uses the methods defined in ListViewItemComparer to perform the sort of items, based on the column that is clicked.

#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 está establecida en Details.A ListView.ColumnHeaderCollection class stores the column headers that are displayed in the ListView control when the View property is set to Details. Almacena los objetos que definen el texto que se va a mostrar para una columna y cómo se muestra el encabezado de columna ListView en el control al mostrar las columnas. ColumnHeader ListView.ColumnHeaderCollectionThe ListView.ColumnHeaderCollection stores ColumnHeader objects that define the text to display for a column as well as how the column header is displayed in the ListView control when displaying columns. ListView Cuando muestra columnas, los elementos y sus subelementos se muestran en sus propias columnas.When a ListView displays columns, the items and their subitems are displayed in their own columns. Para especificar las columnas en las que se muestran los datos de los ListViewItem.ListViewSubItemCollection subelementos, vea la clase.To specify which columns subitem data is displayed under, see the ListViewItem.ListViewSubItemCollection class.

Hay varias maneras de agregar encabezados de columna a la colección.There are a number of ways to add column headers to the collection. El Add método agrega un encabezado de columna único a la colección.The Add method adds a single column header to the collection. Para agregar un número de encabezados de columna a la colección, debe crear una matriz de ColumnHeader objetos y pasarla AddRange al método.To add a number of column headers to the collection, you create an array of ColumnHeader objects and pass it to the AddRange method. Si desea insertar un encabezado de columna en una ubicación concreta de la colección, puede utilizar el Insert método.If you want to insert a column header at a specific location in the collection, you can use the Insert method. Para quitar los 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.To remove column headers, you can use either the Remove method or the RemoveAt method if you know where the column header is located in the collection. El Clear método permite quitar todos los encabezados de columna de la colección en lugar de utilizar el Remove método para quitar un solo encabezado de columna cada vez.The Clear method allows you to remove all column headers from the collection instead of using the Remove method to remove a single column header at a time.

Además de los métodos y las propiedades para agregar y quitar encabezados de columna, ListView.ColumnHeaderCollection también proporciona métodos para buscar encabezados de columna en la colección.In addition to methods and properties for adding and removing column headers, the ListView.ColumnHeaderCollection also provides methods to find column headers in the collection. El Contains método le permite determinar si un encabezado de columna es un miembro de la colección.The Contains method enables you to determine whether a column header is a member of the collection. Una vez que sepa que el encabezado de columna se encuentra en la colección, puede utilizar IndexOf el método para determinar dónde se encuentra el encabezado de columna en la colección.Once you know that the column header is located in the collection, you can use the IndexOf method to determine where the column header is located in the collection.

Nota

Un comportamiento inesperado puede producirse cuando el ancho combinado de todas las columnas supera los 32.768 píxeles.Unexpected behavior can result when the combined width of all columns exceeds 32,768 pixels.

Constructores

ListView.ColumnHeaderCollection(ListView)

Inicializa una nueva instancia de la clase ListView.ColumnHeaderCollection.Initializes a new instance of the ListView.ColumnHeaderCollection class.

Propiedades

Count

Obtiene el número de elementos de la colección.Gets the number of items in the collection.

IsReadOnly

Obtiene un valor que indica si la colección es de solo lectura.Gets a value indicating whether the collection is read-only.

Item[Int32]

Obtiene el encabezado de columna en el índice especificado de la colección.Gets the column header at the specified index within the collection.

Item[String]

Obtiene de la colección el encabezado de columna con la clave especificada.Gets the column header with the specified key from the collection.

Métodos

Add(ColumnHeader)

Agrega un objeto ColumnHeader existente a la colección.Adds an existing ColumnHeader to the collection.

Add(String)

Crea una columna con el texto especificado y la agrega a la colección.Creates and adds a column with the specified text to the collection.

Add(String, Int32)

Crea una columna con el texto y el ancho especificados y la agrega a la colección.Creates and adds a column with the specified text and width to the collection.

Add(String, Int32, HorizontalAlignment)

Agrega un encabezado de columna a la colección con los valores de alineación, ancho y texto específicos.Adds a column header to the collection with specified text, width, and alignment settings.

Add(String, String)

Crea una columna con el texto y la clave especificados y la agrega a la colección.Creates and adds a column with the specified text and key to the collection.

Add(String, String, Int32)

Crea una columna con el texto, la clave y el ancho especificados y la agrega a la colección.Creates and adds a column with the specified text, key, and width to the collection.

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.Creates and adds a column with the specified key, aligned text, width, and image index to the collection.

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.Creates and adds a column with the specified key, aligned text, width, and image key to the collection.

AddRange(ColumnHeader[])

Agrega una matriz de encabezados de columna a la colección.Adds an array of column headers to the collection.

Clear()

Quita todos los encabezados de columna de la colección.Removes all column headers from the collection.

Contains(ColumnHeader)

Determina si el encabezado de columna especificado se encuentra en la colección.Determines whether the specified column header is located in the collection.

ContainsKey(String)

Determina si una columna con la clave especificada está incluida en la colección.Determines if a column with the specified key is contained in the collection.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(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.Returns an enumerator to use to iterate through the column header collection.

GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IndexOf(ColumnHeader)

Devuelve el índice incluido en la colección del encabezado de columna especificado.Returns the index, within the collection, of the specified column header.

IndexOfKey(String)

Determina el índice de una columna con la clave especificada.Determines the index for a column with the specified key.

Insert(Int32, ColumnHeader)

Inserta un encabezado de columna existente en la colección, en el índice especificado.Inserts an existing column header into the collection at the specified index.

Insert(Int32, String)

Crea un nuevo encabezado de columna con el texto especificado y lo inserta en la colección, en el índice especificado.Creates a new column header with the specified text, and inserts the header into the collection at the specified index.

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.Creates a new column header with the specified text and initial width, and inserts the header into the collection at the specified index.

Insert(Int32, String, Int32, HorizontalAlignment)

Crea un nuevo encabezado de columna y lo inserta en la colección, en el índice especificado.Creates a new column header and inserts it into the collection at the specified index.

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.Creates a new column header with the specified text and key, and inserts the header into the collection at the specified index.

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.Creates a new column header with the specified text, key, and width, and inserts the header into the collection at the specified index.

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.Creates a new column header with the specified aligned text, key, width, and image index, and inserts the header into the collection at the specified index.

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.Creates a new column header with the specified aligned text, key, width, and image key, and inserts the header into the collection at the specified index.

MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
Remove(ColumnHeader)

Quita el encabezado de columna especificado de la colección.Removes the specified column header from the collection.

RemoveAt(Int32)

Quita el encabezado de columna en el índice especificado de la colección.Removes the column header at the specified index within the collection.

RemoveByKey(String)

Quita de la colección la columna con la clave especificada.Removes the column with the specified key from the collection.

ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(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.Copies the ColumnHeader objects in the ListView.ColumnHeaderCollection to an array, starting at a particular array index.

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a la interfaz ListView.ColumnHeaderCollection está sincronizado (es seguro para subprocesos).Gets a value indicating whether access to the ListView.ColumnHeaderCollection is synchronized (thread safe).

ICollection.SyncRoot

Obtiene un objeto que puede utilizarse para sincronizar el acceso a la colección de controles.Gets an object that can be used to synchronize access to the collection of controls.

IList.Add(Object)

Agrega un objeto ColumnHeader a ListView.Adds a ColumnHeader to the ListView.

IList.Contains(Object)

Determina si el encabezado de columna especificado se encuentra en la colección.Determines whether the specified column header is located in the collection.

IList.IndexOf(Object)

Devuelve el índice incluido en la colección del encabezado de columna especificado.Returns the index, within the collection, of the specified column header.

IList.Insert(Int32, Object)

Inserta un encabezado de columna existente en la colección, en el índice especificado.Inserts an existing column header into the collection at the specified index.

IList.IsFixedSize

Obtiene un valor que indica si la interfaz ListView.ColumnHeaderCollection tiene un tamaño fijo.Gets a value indicating whether the ListView.ColumnHeaderCollection has a fixed size.

IList.Item[Int32]

Obtiene o establece el encabezado de columna en el índice especificado de la colección.Gets or sets the column header at the specified index within the collection.

IList.Remove(Object)

Quita el encabezado de columna especificado de la colección.Removes the specified column header from the collection.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Se aplica a