DrawListViewItemEventArgs.DrawFocusRectangle Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Draws a focus rectangle for the ListViewItem if it has focus.

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

public void DrawFocusRectangle()

Use this method to draw a standard focus rectangle around the item. The focus rectangle is normally drawn within the area specified by the Bounds property. If the control is in the details view and the ListView.FullRowSelect property value is false, however, the focus rectangle is drawn around the default text area for the first column of the item.

The focus rectangle is drawn only when the item has focus, so you do not need to check the focus state of the item before you call this method.

The following code example demonstrates how to use the DrawFocusRectangle method in an application that provides custom drawing for a ListView control. In the example, a handler for the ListView.DrawItem event draws the background for entire items. In all views except the details view, this handler also draws the foreground text. In the details view, the foreground text is drawn in the ListView.DrawSubItem event.

For the complete example, see the DrawListViewItemEventArgs overview reference topic.

// Draws the backgrounds for entire ListView items.
private void listView1_DrawItem(object sender,
    DrawListViewItemEventArgs e)
    if ((e.State & ListViewItemStates.Selected) != 0)
        // Draw the background and focus rectangle for a selected item.
        e.Graphics.FillRectangle(Brushes.Maroon, e.Bounds);
        // Draw the background for an unselected item.
        using (LinearGradientBrush brush =
            new LinearGradientBrush(e.Bounds, Color.Orange,
            Color.Maroon, LinearGradientMode.Horizontal))
            e.Graphics.FillRectangle(brush, e.Bounds);

    // Draw the item text for views other than the Details view.
    if (listView1.View != View.Details)

.NET Framework
Available since 2.0
Return to top