Condividi tramite


ListView.ColumnHeaderCollection Classe

Definizione

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.

Si applica a