ListView.ColumnHeaderCollection Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta la raccolta di intestazioni di colonna in un ListView controllo .
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
- Ereditarietà
-
ListView.ColumnHeaderCollection
- Attributi
- Implementazioni
Esempio
Nell'esempio di codice seguente viene creato un modulo contenente un ListView controllo che ordina manualmente gli elementi quando si fa clic su una colonna nel ListView controllo . Nell'esempio viene definita una classe denominata ListViewItemComparer che implementa l'interfaccia System.Collections.IComparer che esegue il ListViewItem confronto. Nell'esempio viene creata un'istanza di ListViewItemComparer e viene utilizzata per impostare la ListViewItemSorter proprietà del ListView controllo . La Sort chiamata al metodo nel ColumnClick gestore eventi usa i metodi definiti in ListViewItemComparer per eseguire l'ordinamento degli elementi, in base alla colonna su cui viene fatto 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
Commenti
Una ListView.ColumnHeaderCollection classe archivia le intestazioni di colonna visualizzate nel ListView controllo quando la View proprietà è impostata su Details. Archivia ListView.ColumnHeaderCollectionColumnHeader gli oggetti che definiscono il testo da visualizzare per una colonna, nonché la modalità di visualizzazione dell'intestazione di colonna nel controllo durante la ListView visualizzazione delle colonne. Quando un ListView oggetto visualizza colonne, gli elementi e i relativi elementi secondari vengono visualizzati nelle proprie colonne. Per specificare le colonne in cui vengono visualizzati i dati dell'elemento secondario, vedere la ListViewItem.ListViewSubItemCollection classe .
Esistono diversi modi per aggiungere intestazioni di colonna alla raccolta. Il Add metodo aggiunge un'intestazione di colonna singola all'insieme. Per aggiungere una serie di intestazioni di colonna all'insieme, creare una matrice di ColumnHeader oggetti e passarla al AddRange metodo . Se si desidera inserire un'intestazione di colonna in una posizione specifica nella raccolta, è possibile utilizzare il Insert metodo . Per rimuovere le intestazioni di colonna, è possibile utilizzare il Remove metodo o il RemoveAt metodo se si conosce la posizione dell'intestazione di colonna nella raccolta. Il Clear metodo consente di rimuovere tutte le intestazioni di colonna dalla raccolta anziché utilizzare il Remove metodo per rimuovere una singola intestazione di colonna alla volta.
Oltre ai metodi e alle proprietà per l'aggiunta e la rimozione di intestazioni di colonna, fornisce ListView.ColumnHeaderCollection anche metodi per trovare le intestazioni di colonna nella raccolta. Il Contains metodo consente di determinare se un'intestazione di colonna è un membro della raccolta. Dopo aver compreso che l'intestazione di colonna si trova nell'insieme, è possibile utilizzare il IndexOf metodo per determinare dove si trova l'intestazione di colonna nella raccolta.
Annotazioni
Un comportamento imprevisto può determinare quando la larghezza combinata di tutte le colonne supera i 32.768 pixel.
Costruttori
| Nome | Descrizione |
|---|---|
| ListView.ColumnHeaderCollection(ListView) |
Inizializza una nuova istanza della classe ListView.ColumnHeaderCollection. |
Proprietà
| Nome | Descrizione |
|---|---|
| Count |
Ottiene il numero di elementi nell'insieme. |
| IsReadOnly |
Ottiene un valore che indica se l'insieme è di sola lettura. |
| Item[Int32] |
Ottiene l'intestazione di colonna in corrispondenza dell'indice specificato all'interno dell'insieme. |
| Item[String] |
Ottiene l'intestazione di colonna con la chiave specificata dall'insieme. |
Metodi
| Nome | Descrizione |
|---|---|
| Add(ColumnHeader) |
Aggiunge un oggetto esistente ColumnHeader alla raccolta. |
| Add(String, Int32, HorizontalAlignment) |
Aggiunge un'intestazione di colonna all'insieme con le impostazioni di testo, larghezza e allineamento specificate. |
| Add(String, Int32) |
Crea e aggiunge una colonna con il testo e la larghezza specificati all'insieme. |
| Add(String, String, Int32, HorizontalAlignment, Int32) |
Crea e aggiunge una colonna con la chiave, il testo allineato, la larghezza e l'indice dell'immagine specificati all'insieme. |
| Add(String, String, Int32, HorizontalAlignment, String) |
Crea e aggiunge una colonna con la chiave, il testo allineato, la larghezza e la chiave dell'immagine specificati alla raccolta. |
| Add(String, String, Int32) |
Crea e aggiunge una colonna con il testo, la chiave e la larghezza specificati all'insieme. |
| Add(String, String) |
Crea e aggiunge una colonna con il testo e la chiave specificati alla raccolta. |
| Add(String) |
Crea e aggiunge una colonna con il testo specificato all'insieme. |
| AddRange(ColumnHeader[]) |
Aggiunge una matrice di intestazioni di colonna all'insieme. |
| Clear() |
Rimuove tutte le intestazioni di colonna dall'insieme. |
| Contains(ColumnHeader) |
Determina se l'intestazione di colonna specificata si trova nella raccolta. |
| ContainsKey(String) |
Determina se una colonna con la chiave specificata è contenuta nell'insieme. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetEnumerator() |
Restituisce un enumeratore da utilizzare per scorrere l'insieme di intestazioni di colonna. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IndexOf(ColumnHeader) |
Restituisce l'indice, all'interno dell'insieme, dell'intestazione di colonna specificata. |
| IndexOfKey(String) |
Determina l'indice per una colonna con la chiave specificata. |
| Insert(Int32, ColumnHeader) |
Inserisce un'intestazione di colonna esistente nella raccolta in corrispondenza dell'indice specificato. |
| Insert(Int32, String, Int32, HorizontalAlignment) |
Crea una nuova intestazione di colonna e la inserisce nella raccolta in corrispondenza dell'indice specificato. |
| Insert(Int32, String, Int32) |
Crea una nuova intestazione di colonna con il testo e la larghezza iniziale specificati e inserisce l'intestazione nella raccolta in corrispondenza dell'indice specificato. |
| Insert(Int32, String, String, Int32, HorizontalAlignment, Int32) |
Crea una nuova intestazione di colonna con il testo, la chiave, la larghezza e l'indice dell'immagine allineati specificati e inserisce l'intestazione nella raccolta in corrispondenza dell'indice specificato. |
| Insert(Int32, String, String, Int32, HorizontalAlignment, String) |
Crea una nuova intestazione di colonna con il testo, la chiave, la larghezza e la chiave immagine allineati specificati e inserisce l'intestazione nella raccolta in corrispondenza dell'indice specificato. |
| Insert(Int32, String, String, Int32) |
Crea una nuova intestazione di colonna con il testo, la chiave e la larghezza specificati e inserisce l'intestazione nella raccolta in corrispondenza dell'indice specificato. |
| Insert(Int32, String, String) |
Crea una nuova intestazione di colonna con il testo e la chiave specificati e inserisce l'intestazione nella raccolta in corrispondenza dell'indice specificato. |
| Insert(Int32, String) |
Crea una nuova intestazione di colonna con il testo specificato e inserisce l'intestazione nella raccolta in corrispondenza dell'indice specificato. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| Remove(ColumnHeader) |
Rimuove l'intestazione di colonna specificata dall'insieme. |
| RemoveAt(Int32) |
Rimuove l'intestazione di colonna in corrispondenza dell'indice specificato all'interno dell'insieme. |
| RemoveByKey(String) |
Rimuove la colonna con la chiave specificata dall'insieme. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copia gli ColumnHeader oggetti nell'oggetto ListView.ColumnHeaderCollection in una matrice, a partire da un indice di matrice specifico. |
| ICollection.IsSynchronized |
Ottiene un valore che indica se l'accesso ListView.ColumnHeaderCollection a è sincronizzato (thread-safe). |
| ICollection.SyncRoot |
Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso all'insieme di controlli. |
| IList.Add(Object) |
Aggiunge un ColumnHeader al ListView. |
| IList.Contains(Object) |
Determina se l'intestazione di colonna specificata si trova nella raccolta. |
| IList.IndexOf(Object) |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Restituisce l'indice, all'interno dell'insieme, dell'intestazione di colonna specificata. |
| IList.Insert(Int32, Object) |
Inserisce un'intestazione di colonna esistente nella raccolta in corrispondenza dell'indice specificato. |
| IList.IsFixedSize |
Ottiene un valore che indica se ha ListView.ColumnHeaderCollection una dimensione fissa. |
| IList.Item[Int32] |
Ottiene o imposta l'intestazione di colonna in corrispondenza dell'indice specificato all'interno dell'insieme. |
| IList.Remove(Object) |
Rimuove l'intestazione di colonna specificata dall'insieme. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| AsParallel(IEnumerable) |
Abilita la parallelizzazione di una query. |
| AsQueryable(IEnumerable) |
Converte un IEnumerable in un IQueryable. |
| Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un IEnumerable al tipo specificato. |
| OfType<TResult>(IEnumerable) |
Filtra gli elementi di un IEnumerable in base a un tipo specificato. |