ListView.ColumnHeaderCollection Klasse

Definition

Stellt die Auflistung von Spaltenüberschriften in einem ListView-Steuerelement dar.

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
Vererbung
ListView.ColumnHeaderCollection
Attribute
Implementiert

Beispiele

Im folgenden Codebeispiel wird ein Formular erstellt, das ein ListView Steuerelement enthält, das Elemente manuell sortiert, wenn auf eine Spalte im ListView Steuerelement geklickt wird. Im Beispiel wird eine Klasse namens ListViewItemComparer definiert, die die System.Collections.IComparer Schnittstelle implementiert, die den ListViewItem Vergleich durchführt. Im Beispiel wird eine instance von ListViewItemComparer erstellt und verwendet, um die ListViewItemSorter -Eigenschaft des ListView Steuerelements festzulegen. Der Sort Methodenaufruf im ColumnClick Ereignishandler verwendet die in ListViewItemComparer definierten Methoden, um die Art von Elementen basierend auf der Spalte auszuführen, auf die geklickt wird.

#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

Hinweise

Eine ListView.ColumnHeaderCollection -Klasse speichert die Spaltenüberschriften, die ListView im -Steuerelement angezeigt werden, wenn die View -Eigenschaft auf Detailsfestgelegt ist. Speichert ListView.ColumnHeaderCollectionColumnHeader Objekte, die den anzuzeigenden Text für eine Spalte sowie die Anzeige der Spaltenüberschrift im Steuerelement beim Anzeigen von ListView Spalten definieren. Wenn spalten ListView angezeigt werden, werden die Elemente und ihre Unterelemente in ihren eigenen Spalten angezeigt. Informationen zum Angeben, welche Spaltenunterelementdaten unter angezeigt werden, finden Sie in der ListViewItem.ListViewSubItemCollection -Klasse.

Es gibt eine Reihe von Möglichkeiten, der Auflistung Spaltenüberschriften hinzuzufügen. Die Add -Methode fügt der Auflistung einen einzelnen Spaltenheader hinzu. Um der Auflistung eine Reihe von Spaltenüberschriften hinzuzufügen, erstellen Sie ein Array von ColumnHeader -Objekten und übergeben es an die AddRange -Methode. Wenn Sie eine Spaltenüberschrift an einer bestimmten Stelle in der Auflistung einfügen möchten, können Sie die Insert -Methode verwenden. Um Spaltenüberschriften zu entfernen, können Sie entweder die Remove -Methode oder die RemoveAt -Methode verwenden, wenn Sie wissen, wo sich die Spaltenüberschrift in der Auflistung befindet. Mit Clear der -Methode können Sie alle Spaltenüberschriften aus der Auflistung entfernen, anstatt die Remove -Methode zu verwenden, um jeweils eine einzelne Spaltenüberschrift zu entfernen.

Zusätzlich zu Methoden und Eigenschaften zum Hinzufügen und Entfernen von Spaltenüberschriften stellt auch ListView.ColumnHeaderCollection Methoden zum Suchen von Spaltenüberschriften in der Auflistung bereit. Mit Contains der -Methode können Sie bestimmen, ob ein Spaltenheader ein Element der Auflistung ist. Sobald Sie wissen, dass sich der Spaltenheader in der Auflistung befindet, können Sie die IndexOf -Methode verwenden, um zu bestimmen, wo sich der Spaltenheader in der Auflistung befindet.

Hinweis

Unerwartetes Verhalten kann auftreten, wenn die kombinierte Breite aller Spalten 32.768 Pixel überschreitet.

Konstruktoren

ListView.ColumnHeaderCollection(ListView)

Initialisiert eine neue Instanz der ListView.ColumnHeaderCollection-Klasse.

Eigenschaften

Count

Ruft die Anzahl der Elemente in der Auflistung ab.

IsReadOnly

Ruft einen Wert ab, der angibt, ob die Auflistung schreibgeschützt ist.

Item[Int32]

Ruft den Spaltenheader am angegebenen Index in der Auflistung ab.

Item[String]

Ruft den Spaltenheader mit dem angegebenen Schlüssel aus der Auflistung ab.

Methoden

Add(ColumnHeader)

Fügt der Auflistung ein vorhandenes ColumnHeader hinzu.

Add(String)

Erstellt eine Spalte mit dem angegebenen Text und fügt diese der Auflistung hinzu.

Add(String, Int32)

Erstellt eine Spalte mit dem angegebenen Text und der angegebenen Breite und fügt diese der Auflistung hinzu.

Add(String, Int32, HorizontalAlignment)

Fügt der Auflistung einen Spaltenkopf mit den angegebenen Einstellungen für Text, Breite und Ausrichtung hinzu.

Add(String, String)

Erstellt eine Spalte mit dem angegebenen Text und dem angegebenen Schlüssel und fügt diese der Auflistung hinzu.

Add(String, String, Int32)

Erstellt eine Spalte mit dem angegebenen Text, dem angegebenen Schlüssel und der angegebenen Breite und fügt die Spalte der Auflistung hinzu.

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

Erstellt eine Spalte mit dem angegebenen Schlüssel, dem angegebenen ausgerichteten Text, der angegebenen Breite und dem angegebenen Bildindex und fügt diese der Auflistung hinzu.

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

Erstellt eine Spalte mit dem angegebenen Schlüssel, dem angegebenen ausgerichteten Text, der angegebenen Breite und dem angegebenen Bildschlüssel und fügt diese der Auflistung hinzu.

AddRange(ColumnHeader[])

Fügt der Auflistung ein Array von Spaltenköpfen hinzu.

Clear()

Entfernt alle Spaltenköpfe aus der Auflistung.

Contains(ColumnHeader)

Bestimmt, ob sich der angegebene Spaltenkopf in der Auflistung befindet.

ContainsKey(String)

Bestimmt, ob eine Spalte mit dem angegebenen Schlüssel in der Auflistung enthalten ist.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, mit dem die Auflistung von Spaltenköpfen durchlaufen werden soll.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IndexOf(ColumnHeader)

Gibt den Index des angegebenen Spaltenheaders in der Auflistung zurück.

IndexOfKey(String)

Bestimmt den Index für eine Spalte mit dem angegebenen Schlüssel.

Insert(Int32, ColumnHeader)

Fügt einer Auflistung einen vorhandenen Spaltenkopf am angegebenen Index hinzu.

Insert(Int32, String)

Erstellt einen neuen Spaltenheader mit dem angegebenen Text und fügt den Header am angegebenen Index in die Auflistung ein.

Insert(Int32, String, Int32)

Erstellt einen neuen Spaltenheader mit dem angegebenen Text und der ursprünglichen Breite und fügt den Header am angegebenen Index in die Auflistung ein.

Insert(Int32, String, Int32, HorizontalAlignment)

Erstellt einen neuen Spaltenkopf und fügt ihn am angegebenen Index in die Auflistung ein.

Insert(Int32, String, String)

Erstellt einen neuen Spaltenheader mit dem angegebenen Text und dem angegebenen Schlüssel und fügt den Header am angegebenen Index in die Auflistung ein.

Insert(Int32, String, String, Int32)

Erstellt einen neuen Spaltenheader mit dem angegebenen Text, dem angegebenen Schlüssel und der angegebenen Breite und fügt den Header am angegebenen Index in die Auflistung ein.

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

Erstellt einen neuen Spaltenheader mit dem angegebenen ausgerichteten Text, dem angegebenen Schlüssel, der angegebenen Breite und dem angegebenen Bildindex und fügt den Header am angegebenen Index in die Auflistung ein.

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

Erstellt einen neuen Spaltenheader mit dem angegebenen ausgerichteten Text, dem angegebenen Schlüssel, der angegebenen Breite und dem angegebenen Bildschlüssel und fügt den Header am angegebenen Index in die Auflistung ein.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Remove(ColumnHeader)

Entfernt den angegebenen Spaltenkopf aus der Auflistung.

RemoveAt(Int32)

Entfernt den Spaltenkopf am angegebenen Index in der Auflistung.

RemoveByKey(String)

Entfernt die Spalte mit dem angegebenen Schlüssel aus der Auflistung.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die ColumnHeader-Objekte in der ListView.ColumnHeaderCollection in ein Array, beginnend an einem bestimmten Arrayindex.

ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die ListView.ColumnHeaderCollection synchronisiert (threadsicher) ist.

ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf die Steuerelementauflistung synchronisiert werden kann

IList.Add(Object)

Fügt der ColumnHeader einen ListView hinzu.

IList.Contains(Object)

Bestimmt, ob sich der angegebene Spaltenkopf in der Auflistung befindet.

IList.IndexOf(Object)

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt den Index des angegebenen Spaltenheaders in der Auflistung zurück.

IList.Insert(Int32, Object)

Fügt einer Auflistung einen vorhandenen Spaltenkopf am angegebenen Index hinzu.

IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob das ListView.ColumnHeaderCollection eine feste Größe aufweist.

IList.Item[Int32]

Ruft den Spaltenkopf am angegebenen Index in der Auflistung ab oder legt diesen fest.

IList.Remove(Object)

Entfernt den angegebenen Spaltenkopf aus der Auflistung.

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ um

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.

Gilt für: