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 ListView ovládací prvek, který ručně seřadí položky při kliknutí na sloupec v ovládacím ListView prvku. Příklad definuje třídu, 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é ListViewItemComparer k provedení řazení položek na základě sloupce, který je kliknut.

#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ů. ListView Když se zobrazí sloupce, zobrazí se položky a jejich podnabídky ve svých vlastních sloupcích. Chcete-li určit, které sloupce jsou zobrazeny v podnabídce dat, podívejte se na ListViewItem.ListViewSubItemCollection třídu.

Do kolekce můžete přidat záhlaví sloupců několika způsoby. Metoda Add přidá do kolekce záhlaví s jedním sloupcem. Pokud chcete do kolekce přidat několik záhlaví sloupců, vytvoříte pole objektů a předáte ho ColumnHeaderAddRange metodě. Pokud chcete vložit záhlaví sloupce do konkrétního umístění 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 nachází v kolekci. Tato Clear metoda 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í záhlaví ListView.ColumnHeaderCollection sloupců poskytuje také metody pro vyhledání záhlaví sloupců v kolekci. Tato Contains metoda umožňuje určit, zda je záhlaví sloupce členem kolekce. Jakmile víte, že záhlaví sloupce se nachází v kolekci, můžete použít metodu IndexOf k určení umístění záhlaví sloupce v kolekci.

Poznámka:

Neočekávané chování může mít za následek, že kombinovaná šířka všech sloupců přesahuje 32 768 pixelů.

Konstruktory

Name Description
ListView.ColumnHeaderCollection(ListView)

Inicializuje novou instanci ListView.ColumnHeaderCollection třídy.

Vlastnosti

Name Description
Count

Získá počet položek v kolekci.

IsReadOnly

Získá hodnotu určující, zda kolekce je jen pro čtení.

Item[Int32]

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

Item[String]

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

Metody

Name Description
Add(ColumnHeader)

Přidá existující ColumnHeader kolekci.

Add(String, Int32, HorizontalAlignment)

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

Add(String, Int32)

Vytvoří a přidá sloupec se zadaným textem 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 indexem obrázku 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.

Add(String, String, Int32)

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

Add(String, String)

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

Add(String)

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

AddRange(ColumnHeader[])

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

Clear()

Odebere ze kolekce všechny záhlaví sloupců.

Contains(ColumnHeader)

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

ContainsKey(String)

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

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

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

Vrátí enumerátor, který se použije k iteraci v kolekci záhlaví sloupce.

GetHashCode()

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

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

IndexOfKey(String)

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

Insert(Int32, ColumnHeader)

Vloží do kolekce existující záhlaví sloupce 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, 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, String, Int32, HorizontalAlignment, Int32)

Vytvoří nové záhlaví sloupce se zadaným zarovnaným textem, klíčem, šířkou a indexem obrázku 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íčem, šířkou a klíčem obrázku 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)

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)

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

MemberwiseClone()

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

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

Odebere ze kolekce zadanou hlavičku sloupce.

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í

Name Description
ICollection.CopyTo(Array, Int32)

ColumnHeader Zkopíruje objekty v ListView.ColumnHeaderCollection poli počínaje konkrétním indexem pole.

ICollection.IsSynchronized

Získá hodnotu označující, zda je přístup k ListView.ColumnHeaderCollection této synchronizaci (bezpečné vlákno).

ICollection.SyncRoot

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

IList.Add(Object)

Přidá ColumnHeader do ListView.

IList.Contains(Object)

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

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 v kolekci zadaného záhlaví sloupce.

IList.Insert(Int32, Object)

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

IList.IsFixedSize

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

IList.Item[Int32]

Získá nebo nastaví záhlaví sloupce v zadaném indexu v kolekci.

IList.Remove(Object)

Odebere ze kolekce zadanou hlavičku sloupce.

Metody rozšíření

Name Description
AsParallel(IEnumerable)

Umožňuje paralelizaci dotazu.

AsQueryable(IEnumerable)

Převede IEnumerable na IQueryable.

Cast<TResult>(IEnumerable)

Přetypuje prvky IEnumerable na zadaný typ.

OfType<TResult>(IEnumerable)

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

Platí pro