ListView.ColumnHeaderCollection Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет коллекцию заголовков столбцов в элементе управления 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
- Наследование
-
ListView.ColumnHeaderCollection
- Атрибуты
- Реализации
Примеры
В следующем примере кода создается форма, содержащая ListView элемент управления , который вручную сортирует элементы при щелчке столбца в элементе ListView управления . В примере определяется класс с именем ListViewItemComparer
, реализующий System.Collections.IComparer интерфейс, выполняющий ListViewItem сравнение. В примере создается экземпляр ListViewItemComparer
и он используется для задания ListViewItemSorter свойства ListView элемента управления . Вызов Sort метода в обработчике ColumnClick событий использует методы, определенные в ListViewItemComparer
, для выполнения сортировки элементов на основе столбца, который был нажат.
#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
Комментарии
Класс ListView.ColumnHeaderCollection хранит заголовки столбцов, которые отображаются в элементе ListView управления, если свойству View присвоено значение Details. Хранит ListView.ColumnHeaderCollection объекты, определяющие текст, отображаемый для столбца, а также способ отображения заголовка столбца в элементе ListView управления при отображении столбцовColumnHeader. ListView При отображении столбцов элементы и их подэлементы отображаются в собственных столбцах. Сведения о том, в каких столбцах отображаются данные подэлемента, см. в ListViewItem.ListViewSubItemCollection разделе класс .
Добавить заголовки столбцов в коллекцию можно несколькими способами. Метод Add добавляет в коллекцию заголовок одного столбца. Чтобы добавить в коллекцию несколько заголовков столбцов, создайте массив ColumnHeader объектов и передайте его в AddRange метод . Если вы хотите вставить заголовок столбца в определенное место в коллекции, можно использовать Insert метод . Чтобы удалить заголовки столбцов, можно использовать Remove метод или метод , RemoveAt если известно, где находится заголовок столбца в коллекции. Метод Clear позволяет удалить все заголовки столбцов из коллекции, а не использовать Remove метод для одновременного удаления одного заголовка столбца.
Помимо методов и свойств для добавления и удаления заголовков столбцов, ListView.ColumnHeaderCollection также предоставляет методы для поиска заголовков столбцов в коллекции. Метод Contains позволяет определить, является ли заголовок столбца членом коллекции. Узнав, что заголовок столбца находится в коллекции, можно использовать IndexOf метод , чтобы определить, где находится заголовок столбца в коллекции.
Примечание
Непредвиденное поведение может привести к тому, что общая ширина всех столбцов превышает 32 768 пикселей.
Конструкторы
ListView.ColumnHeaderCollection(ListView) |
Инициализирует новый экземпляр класса ListView.ColumnHeaderCollection. |
Свойства
Count |
Возвращает количество элементов в коллекции. |
IsReadOnly |
Возвращает значение, указывающее, является ли коллекция доступной только для чтения. |
Item[Int32] |
Получает заголовок столбца из коллекции по указанному индексу. |
Item[String] |
Получает заголовок столбца с указанным ключом из коллекции. |
Методы
Add(ColumnHeader) |
Добавляет существующий ColumnHeader в коллекцию. |
Add(String) |
Создает и добавляет столбец с указанным текстом в коллекцию. |
Add(String, Int32) |
Создает и добавляет столбец с указанным текстом и шириной в коллекцию. |
Add(String, Int32, HorizontalAlignment) |
Добавляет в коллекцию заголовок столбца с заданным текстом, шириной и параметрами выравнивания. |
Add(String, String) |
Создает и добавляет столбец с указанным текстом и ключом в коллекцию. |
Add(String, String, Int32) |
Создает и добавляет столбец с указанным текстом, ключом и шириной в коллекцию. |
Add(String, String, Int32, HorizontalAlignment, Int32) |
Создает и добавляет столбец с указанным ключом, выровненным текстом, шириной и индексом изображения в коллекцию. |
Add(String, String, Int32, HorizontalAlignment, String) |
Создает и добавляет столбец с указанным ключом, выровненным текстом, шириной и ключом изображения в коллекцию. |
AddRange(ColumnHeader[]) |
Добавляет в коллекцию массив заголовков столбцов. |
Clear() |
Удаляет все заголовки столбцов из коллекции. |
Contains(ColumnHeader) |
Определяет, находится ли указанный заголовок столбца в данной коллекции. |
ContainsKey(String) |
Определяет, содержится ли в коллекции столбец с указанным ключом. |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetEnumerator() |
Возвращает перечислитель для использования при итерации по коллекции заголовков столбцов. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
IndexOf(ColumnHeader) |
Возвращает индекс из коллекции для заданного заголовка столбца. |
IndexOfKey(String) |
Определяет индекс для столбца с указанным ключом. |
Insert(Int32, ColumnHeader) |
Вставляет существующий заголовок столбца в коллекцию по указанному индексу. |
Insert(Int32, String) |
Создает новый заголовок столбца с указанным текстом и вставляет заголовок в коллекцию по указанному индексу. |
Insert(Int32, String, Int32) |
Создает новый заголовок столбца с указанным текстом и исходной шириной и вставляет заголовок в коллекцию по указанному индексу. |
Insert(Int32, String, Int32, HorizontalAlignment) |
Создает новый заголовок столбца и вставляет его в коллекцию по указанному индексу. |
Insert(Int32, String, String) |
Создает новый заголовок столбца с указанным текстом и ключом и вставляет заголовок в коллекцию по указанному индексу. |
Insert(Int32, String, String, Int32) |
Создает новый заголовок столбца с указанным текстом, ключом и шириной и вставляет заголовок в коллекцию по указанному индексу. |
Insert(Int32, String, String, Int32, HorizontalAlignment, Int32) |
Создает новый заголовок столбца с указанным выровненным текстом, ключом, шириной и индексом изображения и вставляет заголовок в коллекцию по указанному индексу. |
Insert(Int32, String, String, Int32, HorizontalAlignment, String) |
Создает новый заголовок столбца с указанным выровненным текстом, ключом, шириной и ключом изображения и вставляет заголовок в коллекцию по указанному индексу. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Remove(ColumnHeader) |
Удаляет заданный заголовок столбца из коллекции. |
RemoveAt(Int32) |
Удаляет заголовок столбца из коллекции по указанному индексу. |
RemoveByKey(String) |
Удаляет столбец с указанным ключом из коллекции. |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
ICollection.CopyTo(Array, Int32) |
Копирует объекты ColumnHeader в ListView.ColumnHeaderCollection в массив, начиная с определенного индекса массива. |
ICollection.IsSynchronized |
Возвращает значение, показывающее, является ли доступ к коллекции ListView.ColumnHeaderCollection синхронизированным (потокобезопасным). |
ICollection.SyncRoot |
Возвращает объект, который может быть использован для синхронизации доступа к коллекции элементов управления. |
IList.Add(Object) |
Добавляет объект ColumnHeader в коллекцию ListView. |
IList.Contains(Object) |
Определяет, находится ли указанный заголовок столбца в данной коллекции. |
IList.IndexOf(Object) |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Возвращает индекс из коллекции для заданного заголовка столбца. |
IList.Insert(Int32, Object) |
Вставляет существующий заголовок столбца в коллекцию по указанному индексу. |
IList.IsFixedSize |
Получает значение, указывающее, имеет ли список ListView.ColumnHeaderCollection фиксированный размер. |
IList.Item[Int32] |
Получает или задает заголовок столбца с заданным индексом в коллекции. |
IList.Remove(Object) |
Удаляет заданный заголовок столбца из коллекции. |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |