Sdílet prostřednictvím


ListView.ColumnHeaderCollection Třída

Definice

Představuje kolekci záhlaví sloupců v ovládacím ListView prvku.

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
Dědičnost
ListView.ColumnHeaderCollection
Atributy
Implementuje

Příklady

Následující příklad kódu vytvoří formulář, který obsahuje ovládací prvek ListView , který ručně seřadí položky při kliknutí na sloupec v ovládacím ListView prvku. Příklad definuje třídu s názvem ListViewItemComparer , která implementuje System.Collections.IComparer rozhraní, které provádí ListViewItem porovnání. Příklad vytvoří instanci ListViewItemComparer a použije ji k nastavení ListViewItemSorter vlastnosti ListView ovládacího prvku. Volání Sort metody v obslužné rutině ColumnClick události používá metody definované v ListViewItemComparer k provedení řazení položek na základě sloupce, který je klikaný.

#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

Poznámky

Třída ListView.ColumnHeaderCollection ukládá záhlaví sloupců, která jsou zobrazena v ovládacím ListView prvku, když View je vlastnost nastavena na Details. Ukládá ListView.ColumnHeaderCollectionColumnHeader objekty, které definují text, který se má zobrazit pro sloupec, a také způsob zobrazení záhlaví sloupce v ovládacím ListView prvku při zobrazení sloupců. Když se ListView zobrazí sloupce, zobrazí se položky a jejich podřízené položky ve vlastních sloupcích. Pokud chcete určit, pod kterými sloupci se zobrazí podřízená data, podívejte se na ListViewItem.ListViewSubItemCollection třídu.

Existuje několik způsobů, jak přidat záhlaví sloupců do kolekce. Metoda Add přidá do kolekce hlavičku s jedním sloupcem. Pokud chcete do kolekce přidat několik záhlaví sloupců, vytvoříte pole ColumnHeader objektů a předáte ho AddRange metodě. Pokud chcete vložit záhlaví sloupce na konkrétní místo v kolekci, můžete použít metodu Insert . Pokud chcete odebrat záhlaví sloupců, můžete použít metodu Remove nebo metodu RemoveAt , pokud víte, kde se záhlaví sloupce v kolekci nachází. Metoda Clear umožňuje odebrat všechna záhlaví sloupců z kolekce místo použití Remove metody k odebrání záhlaví jednoho sloupce najednou.

Kromě metod a vlastností pro přidávání a odebírání ListView.ColumnHeaderCollection záhlaví sloupců poskytuje také metody pro vyhledání záhlaví sloupců v kolekci. Metoda Contains umožňuje určit, zda je záhlaví sloupce členem kolekce. Jakmile víte, že se záhlaví sloupce nachází v kolekci, můžete pomocí IndexOf metody určit, kde se záhlaví sloupce v kolekci nachází.

Poznámka

Neočekávané chování může vést k tomu, že celková šířka všech sloupců překročí 32 768 pixelů.

Konstruktory

ListView.ColumnHeaderCollection(ListView)

Inicializuje novou instanci ListView.ColumnHeaderCollection třídy.

Vlastnosti

Count

Získá počet prvků v kolekci.

IsReadOnly

Získá hodnotu, která udává, zda je kolekce určena jen pro čtení.

Item[Int32]

Získá záhlaví sloupce v zadaném indexu v rámci kolekce.

Item[String]

Získá záhlaví sloupce se zadaným klíčem z kolekce.

Metody

Add(ColumnHeader)

Přidá existující ColumnHeader do kolekce.

Add(String)

Vytvoří a přidá sloupec se zadaným textem do kolekce.

Add(String, Int32)

Vytvoří a přidá sloupec se zadaným textem a šířkou do kolekce.

Add(String, Int32, HorizontalAlignment)

Přidá do kolekce záhlaví sloupce se zadaným nastavením textu, šířky a zarovnání.

Add(String, String)

Vytvoří a přidá sloupec se zadaným textem a klíčem do kolekce.

Add(String, String, Int32)

Vytvoří a přidá sloupec se zadaným textem, klíčem a šířkou do kolekce.

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

Vytvoří a přidá sloupec se zadaným klíčem, zarovnaným textem, šířkou a obrázkovým indexem do kolekce.

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

Vytvoří a přidá sloupec se zadaným klíčem, zarovnaným textem, šířkou a klíčem obrázku do kolekce.

AddRange(ColumnHeader[])

Přidá do kolekce pole záhlaví sloupců.

Clear()

Odebere z kolekce všechna záhlaví sloupců.

Contains(ColumnHeader)

Určuje, zda je v kolekci umístěna zadaná záhlaví sloupce.

ContainsKey(String)

Určuje, jestli je v kolekci obsažen sloupec se zadaným klíčem.

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetEnumerator()

Vrátí enumerátor, který se má použít k iteraci kolekcí záhlaví sloupců.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Získá aktuální Type instanci.

(Zděděno od Object)
IndexOf(ColumnHeader)

Vrátí index zadaného sloupce v kolekci.

IndexOfKey(String)

Určuje index sloupce se zadaným klíčem.

Insert(Int32, ColumnHeader)

Vloží existující záhlaví sloupce do kolekce v zadaném indexu.

Insert(Int32, String)

Vytvoří nové záhlaví sloupce se zadaným textem a vloží záhlaví do kolekce v zadaném indexu.

Insert(Int32, String, Int32)

Vytvoří nové záhlaví sloupce se zadaným textem a počáteční šířkou a vloží záhlaví do kolekce v zadaném indexu.

Insert(Int32, String, Int32, HorizontalAlignment)

Vytvoří nové záhlaví sloupce a vloží ho do kolekce v zadaném indexu.

Insert(Int32, String, String)

Vytvoří nové záhlaví sloupce se zadaným textem a klíčem a vloží záhlaví do kolekce v zadaném indexu.

Insert(Int32, String, String, Int32)

Vytvoří nové záhlaví sloupce se zadaným textem, klíčem a šířkou a vloží záhlaví do kolekce v zadaném indexu.

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

Vytvoří nové záhlaví sloupce se zadaným zarovnaným textem, klíčem, šířkou a obrázkovým indexem a vloží záhlaví do kolekce v zadaném indexu.

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

Vytvoří nové záhlaví sloupce se zadaným zarovnaným textem, klávesou, šířkou a klávesou obrázku a vloží záhlaví do kolekce v zadaném indexu.

MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
Remove(ColumnHeader)

Odebere zadané záhlaví sloupce z kolekce.

RemoveAt(Int32)

Odebere záhlaví sloupce v zadaném indexu v kolekci.

RemoveByKey(String)

Odebere sloupec se zadaným klíčem z kolekce.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

ICollection.CopyTo(Array, Int32)

Zkopíruje ColumnHeader objekty v objektu ListView.ColumnHeaderCollection do pole počínaje určitým indexem pole.

ICollection.IsSynchronized

Získá hodnotu označující, zda je přístup k ListView.ColumnHeaderCollection je synchronizován (bez vláken).

ICollection.SyncRoot

Získá objekt, který lze použít k synchronizaci přístupu ke kolekci ovládacích prvků.

IList.Add(Object)

Přidá do ColumnHeader .ListView

IList.Contains(Object)

Určuje, zda je v kolekci umístěna zadaná záhlaví sloupce.

IList.IndexOf(Object)

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Vrátí index zadaného sloupce v kolekci.

IList.Insert(Int32, Object)

Vloží existující záhlaví sloupce do kolekce v zadaném indexu.

IList.IsFixedSize

Získá hodnotu označující, zda ListView.ColumnHeaderCollection má pevnou velikost.

IList.Item[Int32]

Získá nebo nastaví záhlaví sloupce v zadaném indexu v rámci kolekce.

IList.Remove(Object)

Odebere zadané záhlaví sloupce z kolekce.

Metody rozšíření

Cast<TResult>(IEnumerable)

Přetypuje prvky objektu na IEnumerable zadaný typ.

OfType<TResult>(IEnumerable)

Filtruje prvky objektu IEnumerable na základě zadaného typu.

AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede objekt na IEnumerableIQueryable.

Platí pro