ListView.ColumnHeaderCollection Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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. |