ListView.ColumnHeaderCollection Classe

Definição

Representa a coleção de cabeçalhos de coluna num ListView controlo.

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
Herança
ListView.ColumnHeaderCollection
Atributos
Implementações

Exemplos

O exemplo de código seguinte cria um formulário que contém um ListView controlo que ordena manualmente os itens quando uma coluna no ListView controlo é clicada. O exemplo define uma classe chamada ListViewItemComparer que implementa a System.Collections.IComparer interface que realiza a ListViewItem comparação. O exemplo cria uma instância de ListViewItemComparer e usa-a para definir a ListViewItemSorter propriedade do ListView controlo. A Sort chamada de método no ColumnClick handler de eventos usa os métodos definidos em ListViewItemComparer para executar o tipo de items, com base na coluna que é clicada.

#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

Observações

A ListView.ColumnHeaderCollection classe armazena os cabeçalhos das colunas que são exibidos no ListView controlo quando a View propriedade é definida para Details. Armazena ListView.ColumnHeaderCollectionColumnHeader objetos que definem o texto a mostrar para uma coluna, bem como a forma como o cabeçalho da coluna é apresentado no ListView controlo ao mostrar colunas. Quando a ListView apresenta colunas, os itens e os seus subitens são apresentados nas suas próprias colunas. Para especificar em que colunas os dados do subitem são exibidos, consulte a ListViewItem.ListViewSubItemCollection classe.

Existem várias formas de adicionar cabeçalhos de coluna à coleção. O Add método adiciona um único cabeçalho de coluna à coleção. Para adicionar vários cabeçalhos de coluna à coleção, cria-se um array de ColumnHeader objetos e passa-se para o AddRange método. Se quiser inserir um cabeçalho de coluna numa localização específica da coleção, pode usar o Insert método. Para remover cabeçalhos de coluna, pode usar tanto o Remove método como o RemoveAt método se souber onde o cabeçalho da coluna está localizado na coleção. O Clear método permite remover todos os cabeçalhos das colunas da coleção em vez de usar o Remove método para remover um único cabeçalho de coluna de cada vez.

Para além dos métodos e propriedades para adicionar e remover cabeçalhos de coluna, ListView.ColumnHeaderCollection também fornece métodos para encontrar cabeçalhos de coluna na coleção. O Contains método permite-lhe determinar se um cabeçalho de coluna é membro da coleção. Depois de saber que o cabeçalho da coluna está localizado na coleção, pode usar o IndexOf método para determinar onde o cabeçalho da coluna está localizado na coleção.

Note

Comportamentos inesperados podem ocorrer quando a largura combinada de todas as colunas ultrapassa 32.768 píxeis.

Construtores

Name Description
ListView.ColumnHeaderCollection(ListView)

Inicializa uma nova instância da ListView.ColumnHeaderCollection classe.

Propriedades

Name Description
Count

Obtém o número de itens na coleção.

IsReadOnly

Recebe um valor que indica se a coleção é apenas de leitura.

Item[Int32]

Recebe o cabeçalho da coluna no índice especificado dentro da coleção.

Item[String]

Obtém o cabeçalho da coluna com a chave especificada da coleção.

Métodos

Name Description
Add(ColumnHeader)

Adiciona um existente ColumnHeader à coleção.

Add(String, Int32, HorizontalAlignment)

Adiciona um cabeçalho de coluna à coleção com definições especificadas de texto, largura e alinhamento.

Add(String, Int32)

Cria e adiciona uma coluna com o texto e a largura especificados à coleção.

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

Cria e adiciona uma coluna com a chave especificada, texto alinhado, largura e índice de imagem à coleção.

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

Cria e adiciona uma coluna com a chave especificada, texto alinhado, largura e chave de imagem à coleção.

Add(String, String, Int32)

Cria e adiciona uma coluna com o texto, a chave e a largura especificados à coleção.

Add(String, String)

Cria e adiciona uma coluna com o texto e a chave especificados para a coleção.

Add(String)

Cria e adiciona uma coluna com o texto especificado à coleção.

AddRange(ColumnHeader[])

Adiciona um array de cabeçalhos de coluna à coleção.

Clear()

Remove todos os cabeçalhos das colunas da coleção.

Contains(ColumnHeader)

Determina se o cabeçalho da coluna especificado está localizado na coleção.

ContainsKey(String)

Determina se uma coluna com a chave especificada está contida na coleção.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Devolve um enumerador para iterar na coleção de cabeçalhos de coluna.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(ColumnHeader)

Devolve o índice, dentro da coleção, do cabeçalho da coluna especificada.

IndexOfKey(String)

Determina o índice de uma coluna com a chave especificada.

Insert(Int32, ColumnHeader)

Insere um cabeçalho de coluna existente na coleção no índice especificado.

Insert(Int32, String, Int32, HorizontalAlignment)

Cria um novo cabeçalho de coluna e insere-o na coleção no índice especificado.

Insert(Int32, String, Int32)

Cria um novo cabeçalho de coluna com o texto especificado e largura inicial, e insere o cabeçalho na coleção no índice especificado.

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

Cria um novo cabeçalho de coluna com o texto alinhado, chave, largura e índice de imagem especificados, e insere o cabeçalho na coleção no índice especificado.

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

Cria um novo cabeçalho de coluna com o texto, chave, largura e chave de imagem alinhados especificados, e insere o cabeçalho na coleção no índice especificado.

Insert(Int32, String, String, Int32)

Cria um novo cabeçalho de coluna com o texto, chave e largura especificados, e insere o cabeçalho na coleção no índice especificado.

Insert(Int32, String, String)

Cria um novo cabeçalho de coluna com o texto e a chave especificados, e insere o cabeçalho na coleção no índice especificado.

Insert(Int32, String)

Cria um novo cabeçalho de coluna com o texto especificado e insere o cabeçalho na coleção no índice especificado.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Remove(ColumnHeader)

Remove o cabeçalho da coluna especificado da coleção.

RemoveAt(Int32)

Remove o cabeçalho da coluna no índice especificado dentro da coleção.

RemoveByKey(String)

Remove a coluna com a chave especificada da coleção.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
ICollection.CopyTo(Array, Int32)

Copia os ColumnHeader objetos em para ListView.ColumnHeaderCollection um array, começando num índice particular do array.

ICollection.IsSynchronized

Recebe um valor que indica se o acesso ao ListView.ColumnHeaderCollection é sincronizado (thread safe).

ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso à coleção de controlos.

IList.Add(Object)

Adiciona um ColumnHeader ao ListView.

IList.Contains(Object)

Determina se o cabeçalho da coluna especificado está localizado na coleção.

IList.IndexOf(Object)

Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código.

Devolve o índice, dentro da coleção, do cabeçalho da coluna especificada.

IList.Insert(Int32, Object)

Insere um cabeçalho de coluna existente na coleção no índice especificado.

IList.IsFixedSize

Obtém um valor que indica se o ListView.ColumnHeaderCollection tem um tamanho fixo.

IList.Item[Int32]

Recebe ou define o cabeçalho da coluna no índice especificado dentro da coleção.

IList.Remove(Object)

Remove o cabeçalho da coluna especificado da coleção.

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base num tipo especificado.

Aplica-se a