使用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中没有任何反应。
答案 0 :(得分:0)
e.Index的值确实设置为预期值,但我的ListView中没有任何反应。
FindItemWithText
方法正如其所说 - 查找并返回第一个以指定文本值开头的ListViewItem。
为了在列表视图中发生某些事情,您必须对返回的项目执行某些操作。例如:
var item = listViewFields.FindItemWithText(txtSearch.Text);
if (item != null)
{
listViewFields.FocusedItem = item;
item.Selected = true;
item.EnsureVisible();
}