Partager via


ListView.ColumnHeaderCollection Classe

Définition

Représente la collection d’en-têtes de colonnes dans un contrôle 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
Héritage
ListView.ColumnHeaderCollection
Attributs
Implémente

Exemples

L’exemple de code suivant crée un formulaire qui contient un ListView contrôle qui trie manuellement les éléments lorsqu’une colonne du ListView contrôle est cliquée. L’exemple définit une classe appelée ListViewItemComparer qui implémente l’interface System.Collections.IComparer qui effectue la ListViewItem comparaison. L’exemple crée une instance de et l’utilise ListViewItemComparer pour définir la ListViewItemSorter propriété du ListView contrôle. L’appel Sort de méthode dans le ColumnClick gestionnaire d’événements utilise les méthodes définies dans ListViewItemComparer pour effectuer le type d’éléments, en fonction de la colonne sur laquelle on clique.

#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

Remarques

Une ListView.ColumnHeaderCollection classe stocke les en-têtes de colonne qui sont affichés dans le ListView contrôle lorsque la View propriété a la valeur Details. Le ListView.ColumnHeaderCollection stocke les ColumnHeader objets qui définissent le texte à afficher pour une colonne, ainsi que la façon dont l’en-tête de colonne est affiché dans le contrôle lors de l’affichage ListView des colonnes. Lorsqu’un ListView affiche des colonnes, les éléments et leurs sous-éléments sont affichés dans leurs propres colonnes. Pour spécifier les colonnes sous lesquelles les données de sous-éléments s’affichent, consultez la ListViewItem.ListViewSubItemCollection classe .

Il existe plusieurs façons d’ajouter des en-têtes de colonne à la collection. La Add méthode ajoute un en-tête de colonne unique à la collection. Pour ajouter un certain nombre d’en-têtes de colonne à la collection, vous créez un tableau d’objets ColumnHeader et passez-le à la AddRange méthode . Si vous souhaitez insérer un en-tête de colonne à un emplacement spécifique dans la collection, vous pouvez utiliser la Insert méthode . Pour supprimer les en-têtes de colonne, vous pouvez utiliser la Remove méthode ou la RemoveAt méthode si vous savez où se trouve l’en-tête de colonne dans la collection. La Clear méthode vous permet de supprimer tous les en-têtes de colonne de la collection au lieu d’utiliser la Remove méthode pour supprimer un en-tête de colonne unique à la fois.

En plus des méthodes et des propriétés permettant d’ajouter et de supprimer des en-têtes de colonne, le ListView.ColumnHeaderCollection fournit également des méthodes pour rechercher les en-têtes de colonne dans la collection. La Contains méthode vous permet de déterminer si un en-tête de colonne est membre de la collection. Une fois que vous savez que l’en-tête de colonne se trouve dans la collection, vous pouvez utiliser la IndexOf méthode pour déterminer où se trouve l’en-tête de colonne dans la collection.

Notes

Un comportement inattendu peut se produire lorsque la largeur combinée de toutes les colonnes dépasse 32 768 pixels.

Constructeurs

ListView.ColumnHeaderCollection(ListView)

Initialise une nouvelle instance de la classe ListView.ColumnHeaderCollection.

Propriétés

Count

Obtient le nombre d’éléments de la collection.

IsReadOnly

Obtient une valeur indiquant si la collection est en lecture seule.

Item[Int32]

Obtient l'en-tête de colonne à l'index spécifié dans la collection.

Item[String]

Obtient l'en-tête de colonne avec la clé spécifiée de la collection.

Méthodes

Add(ColumnHeader)

Ajoute un ColumnHeader existant à la collection.

Add(String)

Crée et ajoute à la collection une colonne avec le texte spécifié.

Add(String, Int32)

Crée et ajoute à la collection une colonne avec le texte et la largeur spécifiés.

Add(String, Int32, HorizontalAlignment)

Ajoute un en-tête de colonne à la collection en spécifiant son texte, sa largeur et ses paramètres d'alignement.

Add(String, String)

Crée et ajoute à la collection une colonne avec le texte et la clé spécifiés.

Add(String, String, Int32)

Crée et ajoute à la collection une colonne avec le texte, la clé et la largeur spécifiés.

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

Crée et ajoute à la collection une colonne avec la clé, le texte aligné, la largeur et l'index d'image spécifiés.

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

Crée et ajoute à la collection une colonne avec la clé, le texte aligné, la largeur et la clé d'image spécifiés.

AddRange(ColumnHeader[])

Ajoute un tableau d'en-têtes de colonne à la collection.

Clear()

Supprime tous les en-têtes de colonne de la collection.

Contains(ColumnHeader)

Détermine si l'en-tête de colonne spécifié réside dans la collection.

ContainsKey(String)

Détermine si une colonne avec la clé spécifiée figure dans la collection.

Equals(Object)

Détermine si l'objet spécifié est égal à l'objet actuel.

(Hérité de Object)
GetEnumerator()

Retourne un énumérateur qui peut être utilisé pour itérer au sein de la collection d'en-têtes de colonne.

GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
IndexOf(ColumnHeader)

Retourne l'index, dans la collection, de l'en-tête de colonne spécifié.

IndexOfKey(String)

Détermine l'index pour une colonne avec la clé spécifiée.

Insert(Int32, ColumnHeader)

Insère un en-tête de colonne existant dans la collection à l'index spécifié.

Insert(Int32, String)

Crée un en-tête de colonne avec le texte spécifié et l'insère dans la collection à l'index spécifié.

Insert(Int32, String, Int32)

Crée un en-tête de colonne avec le texte et la largeur initiale spécifiés et l'insère dans la collection à l'index spécifié.

Insert(Int32, String, Int32, HorizontalAlignment)

Crée un nouvel en-tête de colonne et l'insère dans la collection à la position d'index spécifiée.

Insert(Int32, String, String)

Crée un en-tête de colonne avec le texte et la clé spécifiés et l'insère dans la collection à l'index spécifié.

Insert(Int32, String, String, Int32)

Crée un en-tête de colonne avec le texte, la clé et la largeur initiale spécifiés et l'insère dans la collection à l'index spécifié.

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

Crée un en-tête de colonne avec le texte aligné, la clé, la largeur et l'index d'image spécifiés et l'insère dans la collection à l'index spécifié.

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

Crée un en-tête de colonne avec le texte aligné, la clé, la largeur et la clé d'image spécifiés et l'insère dans la collection à l'index spécifié.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Remove(ColumnHeader)

Supprime de la collection l'en-tête de colonne spécifié.

RemoveAt(Int32)

Supprime l'en-tête de colonne situé à la position d'index spécifiée dans la collection.

RemoveByKey(String)

Supprime la colonne avec la clé spécifiée de la collection.

ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

ICollection.CopyTo(Array, Int32)

Copie les objets ColumnHeader de ListView.ColumnHeaderCollection dans un tableau, en commençant au niveau d'un index de tableau particulier.

ICollection.IsSynchronized

Obtient une valeur indiquant si l’accès à ListView.ColumnHeaderCollection est synchronisé (thread-safe).

ICollection.SyncRoot

Obtient un objet qui peut être utilisé pour synchroniser l'accès à la collection de contrôles.

IList.Add(Object)

Ajoute un objet ColumnHeader à ListView.

IList.Contains(Object)

Détermine si l'en-tête de colonne spécifié réside dans la collection.

IList.IndexOf(Object)

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Retourne l'index, dans la collection, de l'en-tête de colonne spécifié.

IList.Insert(Int32, Object)

Insère un en-tête de colonne existant dans la collection à l'index spécifié.

IList.IsFixedSize

Obtient une valeur indiquant si ListView.ColumnHeaderCollection est de taille fixe.

IList.Item[Int32]

Obtient ou définit l'en-tête de colonne à l'index spécifié dans la collection.

IList.Remove(Object)

Supprime de la collection l'en-tête de colonne spécifié.

Méthodes d’extension

Cast<TResult>(IEnumerable)

Effectue un cast des éléments d'un IEnumerable vers le type spécifié.

OfType<TResult>(IEnumerable)

Filtre les éléments d'un IEnumerable en fonction du type spécifié.

AsParallel(IEnumerable)

Active la parallélisation d'une requête.

AsQueryable(IEnumerable)

Convertit un IEnumerable en IQueryable.

S’applique à