ListView.ColumnHeaderCollection 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 만듭니다. 이 예제에서는 비교를 수행하는 인터페이스를 System.Collections.IComparer 구현하는 라는 ListViewItemComparer
클래스를 ListViewItem 정의합니다. 이 예제에서는 의 instance ListViewItemComparer
만들고 이를 사용하여 컨트롤의 ListView 속성을 설정합니다ListViewItemSorter. 이벤트 처리기의 메서드 호출 ColumnClick 은 Sort 에 정의된 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 클래스는 속성이 로 설정된 Details경우 View 컨트롤에 ListView 표시되는 열 머리글을 저장합니다. 는 ListView.ColumnHeaderCollection 열에 대해 표시할 텍스트와 열을 표시할 때 컨트롤에 ListView 열 머리글이 표시되는 방식을 정의하는 개체를 저장 ColumnHeader 합니다. 가 ListView 열을 표시하면 항목 및 해당 하위 항목이 해당 열에 표시됩니다. 아래에 표시되는 열 하위 항목 데이터를 지정하려면 클래스를 ListViewItem.ListViewSubItemCollection 참조하세요.
컬렉션에 열 머리글을 추가하는 방법에는 여러 가지가 있습니다. 메서드는 Add 컬렉션에 단일 열 헤더를 추가합니다. 컬렉션에 여러 열 머리글을 추가하려면 개체 배열 ColumnHeader 을 만들어 메서드에 AddRange 전달합니다. 컬렉션의 특정 위치에 열 머리글을 삽입하려는 경우 메서드를 Insert 사용할 수 있습니다. 열 머리글을 제거하려면 컬렉션에서 열 머리글이 RemoveRemoveAt 있는 위치를 알고 있는 경우 메서드 또는 메서드를 사용할 수 있습니다. 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로 변환합니다. |
적용 대상
.NET