ListView.ColumnHeaderCollection Klass

Definition

Representerar samlingen med kolumnrubriker i en ListView kontroll.

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
Arv
ListView.ColumnHeaderCollection
Attribut
Implementeringar

Exempel

I följande kodexempel skapas ett formulär som innehåller en ListView kontroll som manuellt sorterar objekt när en kolumn i ListView kontrollen klickas. Exemplet definierar en klass med namnet ListViewItemComparer som implementerar gränssnittet System.Collections.IComparer som utför jämförelsen ListViewItem . Exemplet skapar en instans av ListViewItemComparer och använder den för att ange ListViewItemSorter kontrollens ListView egenskap. Metodanropet SortColumnClick i händelsehanteraren använder de metoder som definierats i ListViewItemComparer för att utföra den typ av objekt, baserat på kolumnen som klickas.

#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

Kommentarer

En ListView.ColumnHeaderCollection klass lagrar kolumnrubrikerna som visas i ListView kontrollen när View egenskapen är inställd på Details. Lagrar ListView.ColumnHeaderCollectionColumnHeader objekt som definierar texten som ska visas för en kolumn samt hur kolumnrubriken ListView visas i kontrollen när kolumner visas. När en ListView visar kolumner visas objekten och deras underwebbplatser i sina egna kolumner. Information om vilka kolumner som underwebbplatsdata visas under finns i ListViewItem.ListViewSubItemCollection klassen .

Det finns ett antal sätt att lägga till kolumnrubriker i samlingen. Metoden Add lägger till en kolumnrubrik i samlingen. Om du vill lägga till ett antal kolumnrubriker i samlingen skapar du en matris med ColumnHeader objekt och skickar den till AddRange -metoden. Om du vill infoga en kolumnrubrik på en viss plats i samlingen kan du använda Insert metoden . Om du vill ta bort kolumnrubriker kan du använda antingen Remove -metoden eller RemoveAt -metoden om du vet var kolumnrubriken finns i samlingen. Med Clear metoden kan du ta bort alla kolumnrubriker från samlingen i stället för att använda Remove metoden för att ta bort en kolumnrubrik i taget.

Förutom metoder och egenskaper för att lägga till och ta bort kolumnrubriker, ListView.ColumnHeaderCollection innehåller även metoderna för att hitta kolumnrubriker i samlingen. Med Contains metoden kan du avgöra om en kolumnrubrik är medlem i samlingen. När du vet att kolumnrubriken finns i samlingen kan du använda IndexOf metoden för att avgöra var kolumnrubriken finns i samlingen.

Note

Oväntat beteende kan uppstå när den kombinerade bredden för alla kolumner överskrider 32 768 bildpunkter.

Konstruktorer

Name Description
ListView.ColumnHeaderCollection(ListView)

Initierar en ny instans av ListView.ColumnHeaderCollection klassen.

Egenskaper

Name Description
Count

Hämtar antalet objekt i samlingen.

IsReadOnly

Hämtar ett värde som anger om samlingen är skrivskyddad.

Item[Int32]

Hämtar kolumnrubriken vid det angivna indexet i samlingen.

Item[String]

Hämtar kolumnrubriken med den angivna nyckeln från samlingen.

Metoder

Name Description
Add(ColumnHeader)

Lägger till en befintlig ColumnHeader i samlingen.

Add(String, Int32, HorizontalAlignment)

Lägger till en kolumnrubrik i samlingen med angivna inställningar för text, bredd och justering.

Add(String, Int32)

Skapar och lägger till en kolumn med den angivna texten och bredden i samlingen.

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

Skapar och lägger till en kolumn med den angivna nyckeln, justerad text, bredd och bildindex i samlingen.

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

Skapar och lägger till en kolumn med den angivna nyckeln, justerad text, bredd och bildnyckel i samlingen.

Add(String, String, Int32)

Skapar och lägger till en kolumn med den angivna texten, nyckeln och bredden i samlingen.

Add(String, String)

Skapar och lägger till en kolumn med den angivna texten och nyckeln i samlingen.

Add(String)

Skapar och lägger till en kolumn med den angivna texten i samlingen.

AddRange(ColumnHeader[])

Lägger till en matris med kolumnrubriker i samlingen.

Clear()

Tar bort alla kolumnrubriker från samlingen.

Contains(ColumnHeader)

Avgör om den angivna kolumnrubriken finns i samlingen.

ContainsKey(String)

Avgör om en kolumn med den angivna nyckeln finns i samlingen.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetEnumerator()

Returnerar en uppräkning som ska användas för att iterera genom kolumnrubriksamlingen.

GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
IndexOf(ColumnHeader)

Returnerar indexet i samlingen för den angivna kolumnrubriken.

IndexOfKey(String)

Avgör indexet för en kolumn med den angivna nyckeln.

Insert(Int32, ColumnHeader)

Infogar en befintlig kolumnrubrik i samlingen vid det angivna indexet.

Insert(Int32, String, Int32, HorizontalAlignment)

Skapar en ny kolumnrubrik och infogar den i samlingen vid det angivna indexet.

Insert(Int32, String, Int32)

Skapar en ny kolumnrubrik med angiven text och inledande bredd och infogar rubriken i samlingen vid det angivna indexet.

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

Skapar en ny kolumnrubrik med den angivna justerade texten, nyckeln, bredden och bildindexet och infogar rubriken i samlingen vid det angivna indexet.

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

Skapar en ny kolumnrubrik med den angivna justerade texten, nyckeln, bredden och bildnyckeln och infogar rubriken i samlingen vid det angivna indexet.

Insert(Int32, String, String, Int32)

Skapar en ny kolumnrubrik med den angivna texten, nyckeln och bredden och infogar rubriken i samlingen vid det angivna indexet.

Insert(Int32, String, String)

Skapar en ny kolumnrubrik med den angivna texten och nyckeln och infogar rubriken i samlingen vid det angivna indexet.

Insert(Int32, String)

Skapar en ny kolumnrubrik med den angivna texten och infogar rubriken i samlingen vid det angivna indexet.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
Remove(ColumnHeader)

Tar bort den angivna kolumnrubriken från samlingen.

RemoveAt(Int32)

Tar bort kolumnrubriken vid det angivna indexet i samlingen.

RemoveByKey(String)

Tar bort kolumnen med den angivna nyckeln från samlingen.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
ICollection.CopyTo(Array, Int32)

Kopierar objekten ColumnHeaderListView.ColumnHeaderCollection i till en matris med början vid ett visst matrisindex.

ICollection.IsSynchronized

Hämtar ett värde som anger om åtkomsten ListView.ColumnHeaderCollection till är synkroniserad (trådsäker).

ICollection.SyncRoot

Hämtar ett objekt som kan användas för att synkronisera åtkomst till samlingen med kontroller.

IList.Add(Object)

Lägger till en ColumnHeader i ListView.

IList.Contains(Object)

Avgör om den angivna kolumnrubriken finns i samlingen.

IList.IndexOf(Object)

Detta API stöder produktinfrastrukturen och är inte avsett att användas direkt från koden.

Returnerar indexet i samlingen för den angivna kolumnrubriken.

IList.Insert(Int32, Object)

Infogar en befintlig kolumnrubrik i samlingen vid det angivna indexet.

IList.IsFixedSize

Hämtar ett värde som anger om har ListView.ColumnHeaderCollection en fast storlek.

IList.Item[Int32]

Hämtar eller anger kolumnrubriken vid det angivna indexet i samlingen.

IList.Remove(Object)

Tar bort den angivna kolumnrubriken från samlingen.

Tilläggsmetoder

Name Description
AsParallel(IEnumerable)

Möjliggör parallellisering av en fråga.

AsQueryable(IEnumerable)

Konverterar en IEnumerable till en IQueryable.

Cast<TResult>(IEnumerable)

Omvandlar elementen i en IEnumerable till den angivna typen.

OfType<TResult>(IEnumerable)

Filtrerar elementen i en IEnumerable baserat på en angiven typ.

Gäller för