在VirtualMode

时间:2016-06-28 17:49:01

标签: c# listview virtualmode

使用VirtualMode时,我在使用ListView进行搜索时遇到了一些麻烦。 ListView只使用RetrieveVirtualItem事件填充find。

我有一个文本框和"搜索"我的表格上的按钮。

private void btnSearch_Click(object sender, EventArgs e)
{
    listViewFields.FindItemWithText(txtSearch.Text);
}

我已经处理了SearchForVirtualItem事件,该事件在我的集合中查找文本,并将索引设置为事件args的Index属性。

private void listViewFields_SearchForVirtualItem(object sender, SearchForVirtualItemEventArgs e)
{
        e.Index = collection.IndexOf(e.Text);
}

e.Index的值确实设置为预期值,但我的ListView中没有任何反应。

1 个答案:

答案 0 :(得分:0)

  

e.Index的值确实设置为预期值,但我的ListView中没有任何反应。

FindItemWithText方法正如其所说 - 查找并返回第一个以指定文本值开头的ListViewItem。

为了在列表视图中发生某些事情,您必须对返回的项目执行某些操作。例如:

var item = listViewFields.FindItemWithText(txtSearch.Text);
if (item != null)
{
    listViewFields.FocusedItem = item;
    item.Selected = true;
    item.EnsureVisible();
}