This documentation is archived and is not being maintained.

ListView.SearchForVirtualItem Event

Occurs when the ListView is in virtual mode and a search is taking place.

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

public event SearchForVirtualItemEventHandler SearchForVirtualItem

This event occurs when a ListView is in virtual mode and the FindNearestItem or FindItemWithText method is called. When handling this event, you should calculate which item from the list of items supplied by the Items property matches the search criteria and set the SearchForVirtualItemEventArgs.Index property to the index of the ListViewItem. If an item is not provided, FindNearestItem and FindItemWithText will return null.

For more information about handling events, see Consuming Events.

The following code example demonstrates the use of this member. In the example, a search returns the nearest match to a specified integer in a list of the first ten thousand squares. This code example is part of a larger example provided for the VirtualMode property.

//This event handler enables search functionality, and is called
//for every search request when in Virtual mode.
void listView1_SearchForVirtualItem(object sender, SearchForVirtualItemEventArgs e)
    //We've gotten a search request.
    //In this example, finding the item is easy since it's
    //just the square of its index.  We'll take the square root
    //and round.
    double x = 0;
    if (Double.TryParse(e.Text, out x)) //check if this is a valid search
        x = Math.Sqrt(x);
        x = Math.Round(x);
        e.Index = (int)x;

    //If e.Index is not set, the search returns null.
    //Note that this only handles simple searches over the entire
    //list, ignoring any other settings.  Handling Direction, StartIndex,
    //and the other properties of SearchForVirtualItemEventArgs is up
    //to this handler.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.