Condividi tramite


ListView.ColumnHeaderCollection Classe

Definizione

Rappresenta la raccolta delle intestazioni di colonna di un controllo 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
Ereditarietà
ListView.ColumnHeaderCollection
Attributi
Implementazioni

Esempio

Nell'esempio di codice seguente viene creato un modulo che contiene un ListView controllo che ordina manualmente gli elementi quando viene fatto clic su una colonna nel ListView controllo. L'esempio definisce una classe denominata ListViewItemComparer che implementa l'interfaccia che esegue il System.Collections.IComparerListViewItem confronto. Nell'esempio viene creata un'istanza di ListViewItemComparer e viene usata 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 il tipo di 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. Gli ListView.ColumnHeaderCollection oggetti archivia ColumnHeader il testo da visualizzare per una colonna e la modalità di visualizzazione dell'intestazione della colonna nel ListView controllo durante la visualizzazione delle colonne. Quando viene visualizzata una ListView colonna, gli elementi e i relativi elementi secondari vengono visualizzati nelle proprie colonne. Per specificare quali dati dell'elemento secondario colonne vengono visualizzati in, 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 un numero di intestazioni di colonna all'insiemeAddRange, creare una matrice di ColumnHeader oggetti e passarla al metodo . Se si vuole inserire un'intestazione di colonna in una posizione specifica nella raccolta, è possibile usare il Insert metodo . Per rimuovere le intestazioni di colonna, è possibile usare il metodo o il RemoveRemoveAt 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é usare il metodo per rimuovere un'intestazione Remove di colonna singola alla volta.

Oltre ai metodi e alle proprietà per l'aggiunta e la rimozione delle intestazioni di colonna, ListView.ColumnHeaderCollection fornisce anche metodi per trovare intestazioni di colonna nell'insieme. Il Contains metodo consente di determinare se un'intestazione di colonna è un membro della raccolta. Dopo aver appreso che l'intestazione di colonna si trova nella raccolta, è possibile usare il IndexOf metodo per determinare dove si trova l'intestazione di colonna nella raccolta.

Nota

Il comportamento imprevisto può risultare quando la larghezza combinata di tutte le colonne supera i 32.768 pixel.

Costruttori

ListView.ColumnHeaderCollection(ListView)

Inizializza una nuova istanza della classe ListView.ColumnHeaderCollection.

Proprietà

Count

Ottiene il numero di elementi nella raccolta.

IsReadOnly

Ottiene un valore che indica se la raccolta è 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

Add(ColumnHeader)

Aggiunge un oggetto ColumnHeader esistente all'insieme.

Add(String)

Crea e aggiunge all'insieme una colonna con il testo specificato.

Add(String, Int32)

Crea e aggiunge all'insieme una colonna con il testo e la larghezza specificati.

Add(String, Int32, HorizontalAlignment)

Aggiunge un'intestazione di colonna all'insieme, utilizzando le impostazioni relative al testo, alla larghezza e all'allineamento specificate.

Add(String, String)

Crea e aggiunge all'insieme una colonna con il testo e la chiave specificati.

Add(String, String, Int32)

Crea e aggiunge all'insieme una colonna con il testo, la chiave e la larghezza specificati.

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

Crea e aggiunge all'insieme una colonna con il testo, il testo allineato, la larghezza e l'immagine specificati.

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

Crea e aggiunge all'insieme una colonna con il testo, il testo allineato, la larghezza e l'indice di immagine specificati.

AddRange(ColumnHeader[])

Aggiunge una matrice di intestazioni di colonna all'insieme.

Clear()

Rimuove dall'insieme tutte le intestazioni di colonna.

Contains(ColumnHeader)

Consente di determinare se l'intestazione di colonna specificata si trova nell'insieme.

ContainsKey(String)

Stabilisce 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 delle intestazioni di colonna.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IndexOf(ColumnHeader)

Restituisce l'indice all'interno dell'insieme relativo all'intestazione di colonna specificata.

IndexOfKey(String)

Determina l'indice di una colonna con la chiave specificata.

Insert(Int32, ColumnHeader)

Inserisce nell'insieme un'intestazione di colonna esistente in corrispondenza dell'indice specificato.

Insert(Int32, String)

Crea una nuova intestazione di colonna con un testo specificato inserendo l'intestazione nell'insieme in corrispondenza dell'indice specificato.

Insert(Int32, String, Int32)

Crea una nuova intestazione di colonna con il testo e la larghezza iniziale specificati inserendo l'intestazione nell'insieme in corrispondenza dell'indice specificato.

Insert(Int32, String, Int32, HorizontalAlignment)

Crea una nuova intestazione di colonna e la inserisce nell'insieme in corrispondenza dell'indice specificato.

Insert(Int32, String, String)

Crea una nuova intestazione di colonna con un testo e una chiave specificati inserendo l'intestazione nell'insieme 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 inserendo l'intestazione nell'insieme in corrispondenza dell'indice specificato.

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

Crea una nuova intestazione di colonna con il testo allineato, la chiave, la larghezza e l'indice di immagine specificati inserendo l'intestazione nell'insieme in corrispondenza dell'indice specificato.

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

Crea una nuova intestazione di colonna con il testo allineato, la chiave, la larghezza e la chiave dell'immagine specificati inserendo l'intestazione nell'insieme in corrispondenza dell'indice specificato.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(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

ICollection.CopyTo(Array, Int32)

Copia gli oggetti ColumnHeader nell'oggetto ListView.ColumnHeaderCollection in una matrice, iniziando da un particolare indice di matrice.

ICollection.IsSynchronized

Ottiene un valore che indica se l'accesso a ListView.ColumnHeaderCollection è sincronizzato (thread-safe).

ICollection.SyncRoot

Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso all'insieme dei controlli.

IList.Add(Object)

Aggiunge un oggetto ColumnHeader a ListView.

IList.Contains(Object)

Consente di determinare se l'intestazione di colonna specificata si trova nell'insieme.

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 relativo all'intestazione di colonna specificata.

IList.Insert(Int32, Object)

Inserisce nell'insieme un'intestazione di colonna esistente in corrispondenza dell'indice specificato.

IList.IsFixedSize

Ottiene un valore che indica se ListView.ColumnHeaderCollection ha dimensioni fisse.

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

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.

Si applica a