anusdesai
asked on
how can i change color of listview column header
Hi,
how can i change color of listview column header
how can i change color of listview column header
ASKER
Hi,
it sets up the backcolor whereas i wanted only for column headers
it sets up the backcolor whereas i wanted only for column headers
Try this:
Public Class ListViewColoredHeaders
Inherits ListView
Public Sub New()
Me.OwnerDraw = True
End Sub
Private Sub ListViewColoredHeaders_Dra wColumnHea der(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawL istViewCol umnHeaderE ventArgs) Handles Me.DrawColumnHeader
e.Graphics.FillRectangle(B rushes.Red , e.Bounds)
Dim x As Integer = e.Bounds.Right - 2
Dim y1 As Integer = e.Bounds.Top
Dim y2 As Integer = e.Bounds.Bottom
e.DrawText(TextFormatFlags .EndEllips is Or TextFormatFlags.Left Or TextFormatFlags.SingleLine Or TextFormatFlags.VerticalCe nter)
e.Graphics.DrawLine(Pens.B lack, x, y1, x, y2)
e.Graphics.DrawLine(Pens.L ightGray, x + 1, y1, x + 1, y2)
e.DrawDefault = False
End Sub
Private Sub ListViewColoredHeaders_Dra wItem(ByVa l sender As Object, ByVal e As System.Windows.Forms.DrawL istViewIte mEventArgs ) Handles Me.DrawItem
e.DrawDefault = True
End Sub
Private Sub ListViewColoredHeaders_Dra wSubItem(B yVal sender As Object, ByVal e As System.Windows.Forms.DrawL istViewSub ItemEventA rgs) Handles Me.DrawSubItem
e.DrawDefault = True
End Sub
End Class
Bob
Public Class ListViewColoredHeaders
Inherits ListView
Public Sub New()
Me.OwnerDraw = True
End Sub
Private Sub ListViewColoredHeaders_Dra
e.Graphics.FillRectangle(B
Dim x As Integer = e.Bounds.Right - 2
Dim y1 As Integer = e.Bounds.Top
Dim y2 As Integer = e.Bounds.Bottom
e.DrawText(TextFormatFlags
e.Graphics.DrawLine(Pens.B
e.Graphics.DrawLine(Pens.L
e.DrawDefault = False
End Sub
Private Sub ListViewColoredHeaders_Dra
e.DrawDefault = True
End Sub
Private Sub ListViewColoredHeaders_Dra
e.DrawDefault = True
End Sub
End Class
Bob
ASKER
Hi,
How do I call this class?
How do I call this class?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Cheers mate
' 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.ListV
Me.ListView1.BackColor = System.Drawing.SystemColor
Me.ListView1.Dock = System.Windows.Forms.DockS
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.
Me.ListView1.MultiSelect = True
Me.ListView1.HideSelection
ListView1.HeaderStyle = ColumnHeaderStyle.Nonclick
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(c
Me.ListView1.Columns.Add(c
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(coun
listItem.SubItems.Add(food
ListView1.Items.Add(listIt
Next
Me.Controls.Add(Me.ListVie
End Sub