ListView.HeaderStyle Property

 

Gets or sets the column header style.

Namespace:   System.Windows.Forms
Assembly:  System.Windows.Forms (in System.Windows.Forms.dll)

Public Property HeaderStyle As ColumnHeaderStyle

Property Value

Type: System.Windows.Forms.ColumnHeaderStyle

One of the ColumnHeaderStyle values. The default is Clickable.

Exception Condition
InvalidEnumArgumentException

The value specified is not one of the ColumnHeaderStyle values.

The HeaderStyle property allows you to specify the type of column headers to display when the View property of the ListView control is set to Details and the ListView control has ColumnHeader objects specified in the ListView.ColumnHeaderCollection. ColumnHeader objects define the columns that are displayed in the ListView control. Each column is used to display subitem information for each item in the ListView.

The HeaderStyle property allows you to specify whether the column headers are visible or, if they are visible, whether they will function as clickable buttons. If the HeaderStyle property is set to ColumnHeaderStyle.None, the column headers are not displayed, although the items and subitems of the ListView control are still arranged in columns. If the HeaderStyle property is set to ColumnHeaderStyle.Clickable, the column headers act like buttons that users can click to carry out an action, such as sorting the items in the ListView control using the items in the clicked column as a key. You can implement this behavior in a handler for the ColumnClick event. If the HeaderStyle property is set to ColumnHeaderStyle.Nonclickable, the column headers appear, but cannot be clicked.

The following code example demonstrates a ListView that allows multiple items to be selected. The example demonstrates setting the HideSelection and HeaderStyle properties. It also demonstrates the ColumnHeader.Text, ColumnHeader.TextAlign and ColumnHeader.Width properties. To run this example, paste the following code into a form that contains a ListView object named ListView1 and a TextBox named TextBox1. Call the InitializeListView method from the form's constructor or Load event handler.

' This method adds two columns to the ListView, setting the Text 
' and TextAlign, and Width properties of each ColumnHeader.  The 
' HeaderStyle property is set to NonClickable since the ColumnClick 
' event is not handled.  Finally the method adds ListViewItems and 
' SubItems to each column.
Private Sub InitializeListView()
    Me.ListView1 = New System.Windows.Forms.ListView
    Me.ListView1.BackColor = System.Drawing.SystemColors.Control
    Me.ListView1.Dock = System.Windows.Forms.DockStyle.Top
    Me.ListView1.Location = New System.Drawing.Point(0, 0)
    Me.ListView1.Name = "ListView1"
    Me.ListView1.Size = New System.Drawing.Size(292, 130)
    Me.ListView1.TabIndex = 0
    Me.ListView1.View = System.Windows.Forms.View.Details
    Me.ListView1.MultiSelect = True
    Me.ListView1.HideSelection = False
    ListView1.HeaderStyle = ColumnHeaderStyle.Nonclickable
    Dim columnHeader1 As New ColumnHeader
    With columnHeader1
        .Text = "Breakfast Item"
        .TextAlign = HorizontalAlignment.Left
        .Width = 146
    End With
    Dim columnHeader2 As New ColumnHeader
    With columnHeader2
        .Text = "Price Each"
        .TextAlign = HorizontalAlignment.Center
        .Width = 142
    End With

    Me.ListView1.Columns.Add(columnHeader1)
    Me.ListView1.Columns.Add(columnHeader2)
    Dim foodList() As String = New String() {"Juice", "Coffee", _
        "Cereal & Milk", "Fruit Plate", "Toast & Jelly", _
        "Bagel & Cream Cheese"}
    Dim foodPrice() As String = New String() {"1.09", "1.09", _
        "2.19", "2.49", "1.49", "1.49"}
    Dim count As Integer
    For count = 0 To foodList.Length - 1
        Dim listItem As New ListViewItem(foodList(count))
        listItem.SubItems.Add(foodPrice(count))
        ListView1.Items.Add(listItem)
    Next
    Me.Controls.Add(Me.ListView1)
End Sub

.NET Framework
Available since 1.1
Return to top
Show: