Udostępnij za pośrednictwem


ListView.ColumnHeaderCollection Klasa

Definicja

Reprezentuje kolekcję nagłówków kolumn w kontrolce 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
Dziedziczenie
ListView.ColumnHeaderCollection
Atrybuty
Implementuje

Przykłady

Poniższy przykład kodu tworzy formularz zawierający kontrolkę ListView , która ręcznie sortuje elementy po kliknięciu kolumny w kontrolce ListView . W przykładzie zdefiniowano klasę o nazwie ListViewItemComparer , która implementuje System.Collections.IComparer interfejs wykonujący ListViewItem porównanie. Przykład tworzy wystąpienie ListViewItemComparer i używa go do ustawiania ListViewItemSorter właściwości kontrolki ListView . Wywołanie Sort metody w procedurze obsługi zdarzeń ColumnClick używa metod zdefiniowanych w programie ListViewItemComparer do wykonywania rodzaju elementów na podstawie klikniętej kolumny.

#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

Uwagi

Klasa ListView.ColumnHeaderCollection przechowuje nagłówki kolumn, które są wyświetlane w kontrolce ListView , gdy właściwość jest ustawiona View na Details. ColumnHeader Przechowuje ListView.ColumnHeaderCollection obiekty definiujące tekst do wyświetlenia dla kolumny, a także sposób wyświetlania nagłówka kolumny w kontrolce ListView podczas wyświetlania kolumn. ListView Po wyświetleniu kolumn elementy i ich podwitryk są wyświetlane we własnych kolumnach. Aby określić, w których kolumnach są wyświetlane dane podrzędne, zobacz klasę ListViewItem.ListViewSubItemCollection .

Istnieje wiele sposobów dodawania nagłówków kolumn do kolekcji. Metoda Add dodaje do kolekcji pojedynczy nagłówek kolumny. Aby dodać do kolekcji wiele nagłówków kolumn, należy utworzyć tablicę ColumnHeader obiektów i przekazać ją do AddRange metody . Jeśli chcesz wstawić nagłówek kolumny w określonej lokalizacji w kolekcji, możesz użyć Insert metody . Aby usunąć nagłówki kolumn, możesz użyć Remove metody lub RemoveAt metody, jeśli wiesz, gdzie znajduje się nagłówek kolumny w kolekcji. Metoda Clear umożliwia usunięcie wszystkich nagłówków kolumn z kolekcji zamiast użycia Remove metody w celu usunięcia pojedynczego nagłówka kolumny naraz.

Oprócz metod i właściwości dodawania i usuwania nagłówków kolumn udostępnia ListView.ColumnHeaderCollection również metody znajdowania nagłówków kolumn w kolekcji. Metoda Contains umożliwia określenie, czy nagłówek kolumny jest elementem członkowskim kolekcji. Gdy wiesz, że nagłówek kolumny znajduje się w kolekcji, możesz użyć IndexOf metody , aby określić miejsce, w którym znajduje się nagłówek kolumny w kolekcji.

Uwaga

Nieoczekiwane zachowanie może spowodować, że łączna szerokość wszystkich kolumn przekracza 32 768 pikseli.

Konstruktory

ListView.ColumnHeaderCollection(ListView)

Inicjuje nowe wystąpienie klasy ListView.ColumnHeaderCollection.

Właściwości

Count

Pobiera liczbę elementów w kolekcji.

IsReadOnly

Pobiera wartość wskazującą, czy kolekcja jest przeznaczona tylko do odczytu.

Item[Int32]

Pobiera nagłówek kolumny w określonym indeksie w kolekcji.

Item[String]

Pobiera nagłówek kolumny z określonym kluczem z kolekcji.

Metody

Add(ColumnHeader)

Dodaje istniejący ColumnHeader element do kolekcji.

Add(String)

Tworzy i dodaje kolumnę z określonym tekstem do kolekcji.

Add(String, Int32)

Tworzy i dodaje kolumnę z określonym tekstem i szerokością do kolekcji.

Add(String, Int32, HorizontalAlignment)

Dodaje nagłówek kolumny do kolekcji z określonymi ustawieniami tekstu, szerokości i wyrównania.

Add(String, String)

Tworzy i dodaje kolumnę z określonym tekstem i kluczem do kolekcji.

Add(String, String, Int32)

Tworzy i dodaje kolumnę z określonym tekstem, kluczem i szerokością do kolekcji.

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

Tworzy i dodaje kolumnę z określonym kluczem, wyrównanym tekstem, szerokością i indeksem obrazu do kolekcji.

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

Tworzy i dodaje kolumnę z określonym kluczem, wyrównanym tekstem, szerokością i kluczem obrazu do kolekcji.

AddRange(ColumnHeader[])

Dodaje tablicę nagłówków kolumn do kolekcji.

Clear()

Usuwa wszystkie nagłówki kolumn z kolekcji.

Contains(ColumnHeader)

Określa, czy określony nagłówek kolumny znajduje się w kolekcji.

ContainsKey(String)

Określa, czy kolumna z określonym kluczem znajduje się w kolekcji.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

Zwraca moduł wyliczający, który ma być używany do iterowania po kolekcji nagłówków kolumn.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
IndexOf(ColumnHeader)

Zwraca indeks w kolekcji określonego nagłówka kolumny.

IndexOfKey(String)

Określa indeks kolumny z określonym kluczem.

Insert(Int32, ColumnHeader)

Wstawia istniejący nagłówek kolumny do kolekcji w określonym indeksie.

Insert(Int32, String)

Tworzy nowy nagłówek kolumny z określonym tekstem i wstawia nagłówek do kolekcji w określonym indeksie.

Insert(Int32, String, Int32)

Tworzy nowy nagłówek kolumny z określonym tekstem i początkową szerokością, a następnie wstawia nagłówek do kolekcji w określonym indeksie.

Insert(Int32, String, Int32, HorizontalAlignment)

Tworzy nowy nagłówek kolumny i wstawia go do kolekcji w określonym indeksie.

Insert(Int32, String, String)

Tworzy nowy nagłówek kolumny z określonym tekstem i kluczem i wstawia nagłówek do kolekcji w określonym indeksie.

Insert(Int32, String, String, Int32)

Tworzy nowy nagłówek kolumny z określonym tekstem, kluczem i szerokością oraz wstawia nagłówek do kolekcji w określonym indeksie.

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

Tworzy nowy nagłówek kolumny z określonym wyrównanym tekstem, kluczem, szerokością i indeksem obrazu oraz wstawia nagłówek do kolekcji w określonym indeksie.

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

Tworzy nowy nagłówek kolumny z określonym wyrównanym tekstem, kluczem, szerokością i kluczem obrazu oraz wstawia nagłówek do kolekcji w określonym indeksie.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Remove(ColumnHeader)

Usuwa określony nagłówek kolumny z kolekcji.

RemoveAt(Int32)

Usuwa nagłówek kolumny w określonym indeksie w kolekcji.

RemoveByKey(String)

Usuwa kolumnę z określonym kluczem z kolekcji.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ICollection.CopyTo(Array, Int32)

Kopiuje ColumnHeader obiekty w ListView.ColumnHeaderCollection tablicy, zaczynając od określonego indeksu tablicy.

ICollection.IsSynchronized

Pobiera wartość wskazującą, czy dostęp do elementu ListView.ColumnHeaderCollection jest synchronizowany (bezpieczny wątek).

ICollection.SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do kolekcji kontrolek.

IList.Add(Object)

Dodaje element do ColumnHeader elementu ListView.

IList.Contains(Object)

Określa, czy określony nagłówek kolumny znajduje się w kolekcji.

IList.IndexOf(Object)

Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu.

Zwraca indeks w kolekcji określonego nagłówka kolumny.

IList.Insert(Int32, Object)

Wstawia istniejący nagłówek kolumny do kolekcji w określonym indeksie.

IList.IsFixedSize

Pobiera wartość wskazującą, czy rozmiar ListView.ColumnHeaderCollection ma stały rozmiar.

IList.Item[Int32]

Pobiera lub ustawia nagłówek kolumny w określonym indeksie w kolekcji.

IList.Remove(Object)

Usuwa określony nagłówek kolumny z kolekcji.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy elementu IEnumerable do określonego typu.

OfType<TResult>(IEnumerable)

Filtruje elementy elementu IEnumerable na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy