ListView.ColumnHeaderCollection Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 |