Occurs when a System.Windows.Forms.ListView is drawn and the ListView.OwnerDraw property is set to true.
This event lets you customize the appearance of a System.Windows.Forms.ListView control using owner drawing. It is raised only when the ListView.OwnerDraw property is set to true. For more information about owner drawing, see the ListView.OwnerDraw property reference topic.
The ListView.DrawItem event can occur for each System.Windows.Forms.ListView item. When the ListView.View property is set to View.Details, the ListView.DrawSubItem and ListView.DrawColumnHeader events also occur. In this case, you can handle the ListView.DrawItem event to draw elements common to all items, such as the background, and handle the ListView.DrawSubItem event to draw elements for individual subitems, such as text values. You can also draw all items in the System.Windows.Forms.ListView control using only one of the two events, although this may be less convenient. To draw column headers in the details view, you must handle the ListView.DrawColumnHeader event.
Because of a bug in the underlying Win32 control, the ListView.DrawItem event occurs without accompanying ListView.DrawSubItem events once per row in the details view when the mouse pointer moves over the row, causing anything painted in a ListView.DrawSubItem event handler to be painted over by a custom background drawn in a ListView.DrawItem event handler. See the example in the ListView.OwnerDraw reference topic for a workaround that invalidates each row when the extra event occurs. An alternative workaround is to put all your custom drawing code in a ListView.DrawSubItem event handler and paint the background for the entire item (including subitems) only when the DrawListViewSubItemEventArgs.ColumnIndex value is 0.
For more information about handling events, see Consuming Events.