Partilhar via


ListView.ColumnHeaderCollection Classe

Definição

Representa a coleção de cabeçalhos de coluna em um controle 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
Herança
ListView.ColumnHeaderCollection
Atributos
Implementações

Exemplos

O exemplo de código a seguir cria um formulário que contém um ListView controle que classifica manualmente os itens quando uma coluna no ListView controle é clicada. O exemplo define uma classe chamada ListViewItemComparer que implementa a System.Collections.IComparer interface que executa a ListViewItem comparação. O exemplo cria uma instância de ListViewItemComparer e a usa para definir a ListViewItemSorter propriedade do ListView controle. A Sort chamada de método no ColumnClick manipulador de eventos usa os métodos definidos em ListViewItemComparer para executar o tipo de itens, com base na coluna 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

Comentários

Uma ListView.ColumnHeaderCollection classe armazena os cabeçalhos de coluna exibidos no ListView controle quando a View propriedade é definida Detailscomo . O ListView.ColumnHeaderCollection armazena ColumnHeader objetos que definem o texto a ser exibido para uma coluna, bem como como o cabeçalho da coluna é exibido no ListView controle ao exibir colunas. Quando um ListView exibe colunas, os itens e seus subitens são exibidos em suas próprias colunas. Para especificar em quais colunas os dados de subitem são exibidos, consulte a ListViewItem.ListViewSubItemCollection classe .

Há várias maneiras 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, crie uma matriz de ColumnHeader objetos e passe-a para o AddRange método . Se você quiser inserir um cabeçalho de coluna em um local específico na coleção, poderá usar o Insert método . Para remover cabeçalhos de coluna, você pode usar o Remove método ou 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 de coluna da coleção em vez de usar o Remove método para remover um único cabeçalho de coluna por vez.

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

Observação

Um comportamento inesperado pode resultar quando a largura combinada de todas as colunas exceder 32.768 pixels.

Construtores

ListView.ColumnHeaderCollection(ListView)

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

Propriedades

Count

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

IsReadOnly

Obtém um valor que indica se a coleção é somente leitura.

Item[Int32]

Obtém o cabeçalho de coluna no índice especificado na coleção.

Item[String]

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

Métodos

Add(ColumnHeader)

Adiciona um ColumnHeader existente à coleção.

Add(String)

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

Add(String, Int32)

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

Add(String, Int32, HorizontalAlignment)

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

Add(String, String)

Cria e adiciona uma coluna com o texto e a chave especificados à 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, Int32, HorizontalAlignment, Int32)

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

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

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

AddRange(ColumnHeader[])

Adiciona uma matriz de cabeçalhos de coluna à coleção.

Clear()

Remove todos os cabeçalhos de coluna da coleção.

Contains(ColumnHeader)

Determina se o cabeçalho de 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()

Retorna um enumerador a ser usado para iterar pela coleção de cabeçalhos de coluna.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(ColumnHeader)

Retorna o índice na coleção do cabeçalho de coluna especificado.

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)

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

Insert(Int32, String, Int32)

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

Insert(Int32, String, Int32, HorizontalAlignment)

Cria um novo cabeçalho de coluna e o insere 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, String, Int32)

Cria um novo cabeçalho de coluna com o texto, a chave e a largura especificados 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, a chave, a largura e o índice da 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 alinhado, a chave, a largura e a chave da imagem especificados e insere o cabeçalho na coleção, no índice especificado.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Remove(ColumnHeader)

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

RemoveAt(Int32)

Remove o cabeçalho de coluna no índice especificado na coleção.

RemoveByKey(String)

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

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

ICollection.CopyTo(Array, Int32)

Copia os objetos ColumnHeader na ListView.ColumnHeaderCollection para uma matriz, começando em um índice de matriz específico.

ICollection.IsSynchronized

Obtém um valor que indica se o acesso à ListView.ColumnHeaderCollection é sincronizado (thread-safe).

ICollection.SyncRoot

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

IList.Add(Object)

Adiciona um ColumnHeader ao ListView.

IList.Contains(Object)

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

IList.IndexOf(Object)

Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.

Retorna o índice na coleção do cabeçalho de coluna especificado.

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]

Obtém ou define cabeçalho de coluna no índice especificado na coleção.

IList.Remove(Object)

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

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

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

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a