ListView.ColumnHeaderCollection 類別

定義

代表 ListView 控制項中的資料行標頭集合。Represents the collection of column headers in a ListView control.

public: ref 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
Public Class ListView.ColumnHeaderCollection
Implements IList
繼承
ListView.ColumnHeaderCollection
屬性
實作

範例

下列程式碼範例會建立一個表單, ListView其中包含控制項,可在按一下ListView控制項中的資料行時,以手動方式排序專案。The following code example creates a form that contains a ListView control that manually sorts items when a column in the ListView control is clicked. 這個範例會定義一個名ListViewItemComparer為的類別System.Collections.IComparer ,它會執行ListViewItem比較的介面。The example defines a class called ListViewItemComparer that implements the System.Collections.IComparer interface that performs the ListViewItem comparison. 此範例會建立的ListViewItemComparer實例,並使用它來ListViewItemSorter設定ListView控制項的屬性。The example creates an instance of ListViewItemComparer and uses it to set the ListViewItemSorter property of the ListView control. 事件處理常式Sort ListViewItemComparer中的方法呼叫會根據按下的資料行,使用中定義的方法來執行專案的排序。 ColumnClickThe Sort method call in the ColumnClick event handler uses the methods defined in ListViewItemComparer to perform the sort of items, based on the column that is clicked.

#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 ListView.ColumnHeaderCollection View 時,類別會儲存控制項Details中所顯示的資料行標頭。A ListView.ColumnHeaderCollection class stores the column headers that are displayed in the ListView control when the View property is set to Details. ListView.ColumnHeaderCollection ListView儲存ColumnHeader定義資料行所要顯示之文字的物件,以及在顯示資料行時,如何在控制項中顯示欄標題。The ListView.ColumnHeaderCollection stores ColumnHeader objects that define the text to display for a column as well as how the column header is displayed in the ListView control when displaying columns. ListView當顯示資料行時,這些專案和其子專案會顯示在自己的資料行中。When a ListView displays columns, the items and their subitems are displayed in their own columns. 若要指定要在其底下顯示子資料行, ListViewItem.ListViewSubItemCollection請參閱類別。To specify which columns subitem data is displayed under, see the ListViewItem.ListViewSubItemCollection class.

有數種方式可將資料行標頭新增至集合。There are a number of ways to add column headers to the collection. Add方法會將單一資料行標頭新增至集合。The Add method adds a single column header to the collection. 若要將多個資料行標頭加入至集合,請建立物件的ColumnHeader陣列,並將它傳遞AddRange給方法。To add a number of column headers to the collection, you create an array of ColumnHeader objects and pass it to the AddRange method. 如果您想要在集合中的特定位置插入資料行標頭,您可以使用Insert方法。If you want to insert a column header at a specific location in the collection, you can use the Insert method. 若要移除資料行標頭,您可以使用Remove方法RemoveAt或方法(如果您知道資料行標題位於集合中的位置)。To remove column headers, you can use either the Remove method or the RemoveAt method if you know where the column header is located in the collection. 方法可讓您從集合中移除所有資料行標頭,而不是Remove使用方法一次移除單一資料行標題。 ClearThe Clear method allows you to remove all column headers from the collection instead of using the Remove method to remove a single column header at a time.

除了用於加入和移除資料行標頭的ListView.ColumnHeaderCollection方法和屬性之外,也提供方法來尋找集合中的資料行標頭。In addition to methods and properties for adding and removing column headers, the ListView.ColumnHeaderCollection also provides methods to find column headers in the collection. Contains方法可讓您判斷資料行標題是否為集合的成員。The Contains method enables you to determine whether a column header is a member of the collection. 一旦您知道資料行標頭位於集合中,您就可以使用IndexOf方法來判斷資料行標頭位於集合中的位置。Once you know that the column header is located in the collection, you can use the IndexOf method to determine where the column header is located in the collection.

注意

當所有資料行的合併寬度超過32768圖元時,可能會產生非預期的行為。Unexpected behavior can result when the combined width of all columns exceeds 32,768 pixels.

建構函式

ListView.ColumnHeaderCollection(ListView)

初始化 ListView.ColumnHeaderCollection 類別的新執行個體。Initializes a new instance of the ListView.ColumnHeaderCollection class.

屬性

Count

取得集合中的項目數目。Gets the number of items in the collection.

IsReadOnly

取得值,表示集合是否為唯讀。Gets a value indicating whether the collection is read-only.

Item[Int32]

取得集合中位於指定索引處的資料行行首。Gets the column header at the specified index within the collection.

Item[String]

從集合中取得具有指定索引鍵的資料行行首。Gets the column header with the specified key from the collection.

方法

Add(ColumnHeader)

將現有的 ColumnHeader 加入至集合。Adds an existing ColumnHeader to the collection.

Add(String)

建立具有指定之文字的資料行,並將它加入集合中。Creates and adds a column with the specified text to the collection.

Add(String, Int32)

建立具有指定之文字和寬度的資料行,並將它加入集合中。Creates and adds a column with the specified text and width to the collection.

Add(String, Int32, HorizontalAlignment)

使用指定文字、寬度和對齊設定,將資料行行首加入至集合中。Adds a column header to the collection with specified text, width, and alignment settings.

Add(String, String)

建立具有指定之文字和索引鍵的資料行,並將它加入集合中。Creates and adds a column with the specified text and key to the collection.

Add(String, String, Int32)

建立具有指定之文字、索引鍵和寬度的資料行,並將它加入集合中。Creates and adds a column with the specified text, key, and width to the collection.

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

建立具有指定之索引鍵、對齊文字、寬度和影像索引的資料行,並將它加入集合中。Creates and adds a column with the specified key, aligned text, width, and image index to the collection.

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

建立具有指定之索引鍵、對齊文字、寬度和影像索引鍵的資料行,並將它加入集合中。Creates and adds a column with the specified key, aligned text, width, and image key to the collection.

AddRange(ColumnHeader[])

將資料行行首的陣列加入集合。Adds an array of column headers to the collection.

Clear()

從集合移除所有資料行行首。Removes all column headers from the collection.

Contains(ColumnHeader)

判斷指定的資料行行首是否位於集合中。Determines whether the specified column header is located in the collection.

ContainsKey(String)

判斷具有指定索引鍵的資料行是否包含在集合中。Determines if a column with the specified key is contained in the collection.

Equals(Object)

判斷指定的物件是否等於目前的物件。Determines whether the specified object is equal to the current object.

(繼承來源 Object)
GetEnumerator()

傳回用於逐一查看資料行行首集合的列舉值。Returns an enumerator to use to iterate through the column header collection.

GetHashCode()

作為預設雜湊函數。Serves as the default hash function.

(繼承來源 Object)
GetType()

取得目前執行個體的 TypeGets the Type of the current instance.

(繼承來源 Object)
IndexOf(ColumnHeader)

傳回集合中指定之資料行行首的索引。Returns the index, within the collection, of the specified column header.

IndexOfKey(String)

判斷具有指定索引鍵之資料行的索引。Determines the index for a column with the specified key.

Insert(Int32, ColumnHeader)

將現有的資料行行首插入位於指定索引處的集合中。Inserts an existing column header into the collection at the specified index.

Insert(Int32, String)

使用指定的文字,建立新的資料行行首,並將此行首插入集合中的指定索引處。Creates a new column header with the specified text, and inserts the header into the collection at the specified index.

Insert(Int32, String, Int32)

使用指定的文字和初始寬度,建立新的資料行行首,並將此行首插入集合中的指定索引處。Creates a new column header with the specified text and initial width, and inserts the header into the collection at the specified index.

Insert(Int32, String, Int32, HorizontalAlignment)

建立新的資料行行首,並且將它插入位於指定索引處的集合中。Creates a new column header and inserts it into the collection at the specified index.

Insert(Int32, String, String)

使用指定的文字和索引鍵,建立新的資料行行首,並將此行首插入集合中的指定索引處。Creates a new column header with the specified text and key, and inserts the header into the collection at the specified index.

Insert(Int32, String, String, Int32)

使用指定的文字、索引鍵和寬度,建立新的資料行行首,並將此行首插入集合中的指定索引處。Creates a new column header with the specified text, key, and width, and inserts the header into the collection at the specified index.

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

使用指定的對齊文字、索引鍵、寬度和影像索引,建立新的資料行行首,並將此行首插入集合中的指定索引處。Creates a new column header with the specified aligned text, key, width, and image index, and inserts the header into the collection at the specified index.

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

使用指定的對齊文字、索引鍵、寬度和影像索引鍵,建立新的資料行行首,並將此行首插入集合中的指定索引處。Creates a new column header with the specified aligned text, key, width, and image key, and inserts the header into the collection at the specified index.

MemberwiseClone()

建立目前 Object 的淺層複製。Creates a shallow copy of the current Object.

(繼承來源 Object)
Remove(ColumnHeader)

從集合中移除指定資料行行首。Removes the specified column header from the collection.

RemoveAt(Int32)

移除集合中位於指定索引處的資料行行首。Removes the column header at the specified index within the collection.

RemoveByKey(String)

從集合中移除具有指定索引鍵的資料行。Removes the column with the specified key from the collection.

ToString()

傳回代表目前物件的字串。Returns a string that represents the current object.

(繼承來源 Object)

明確介面實作

ICollection.CopyTo(Array, Int32)

從特定的陣列索引開始,將 ColumnHeader 中的 ListView.ColumnHeaderCollection 物件複製到陣列中。Copies the ColumnHeader objects in the ListView.ColumnHeaderCollection to an array, starting at a particular array index.

ICollection.IsSynchronized

取得值,這個值表示對 ListView.ColumnHeaderCollection 的存取是否同步 (安全執行緒)。Gets a value indicating whether access to the ListView.ColumnHeaderCollection is synchronized (thread safe).

ICollection.SyncRoot

取得可用來對控制項集合進行同步 (Synchronize) 存取的物件。Gets an object that can be used to synchronize access to the collection of controls.

IList.Add(Object)

ColumnHeader 加入至 ListViewAdds a ColumnHeader to the ListView.

IList.Contains(Object)

判斷指定的資料行行首是否位於集合中。Determines whether the specified column header is located in the collection.

IList.IndexOf(Object)

傳回集合中指定之資料行行首的索引。Returns the index, within the collection, of the specified column header.

IList.Insert(Int32, Object)

將現有的資料行行首插入位於指定索引處的集合中。Inserts an existing column header into the collection at the specified index.

IList.IsFixedSize

取得值,指出 ListView.ColumnHeaderCollection 是否有固定的大小。Gets a value indicating whether the ListView.ColumnHeaderCollection has a fixed size.

IList.Item[Int32]

取得或設定在集合中位於指定索引處的資料行行首。Gets or sets the column header at the specified index within the collection.

IList.Remove(Object)

從集合中移除指定資料行行首。Removes the specified column header from the collection.

擴充方法

Cast<TResult>(IEnumerable)

IEnumerable 的項目轉換成指定的型別。Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

根據指定的型別來篩選 IEnumerable 的項目。Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

啟用查詢的平行化作業。Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryableConverts an IEnumerable to an IQueryable.

適用於