我正在尝试在您键入时执行搜索(例如在 iTunes 中)。我正在使用ObjectListView。此外,我有一个用于进行搜索的文本框,如下所示:
private void textBoxSearch_TextChanged(object sender, EventArgs e)
{
string txt = textBoxSearch.Text;
TextMatchFilter filter = null;
if (!String.IsNullOrEmpty(txt))
{
filter = TextMatchFilter.Contains(myObjectListView, txt);
}
// Setup a default renderer to draw the filter matches
if (filter == null)
myObjectListView.DefaultRenderer = null;
else
{
myObjectListView.DefaultRenderer = new HighlightTextRenderer(filter);
// Uncomment this line to see how the GDI+ rendering looks
myObjectListView.DefaultRenderer = new HighlightTextRenderer { Filter = filter, UseGdiTextRendering = false };
}
// Some lists have renderers already installed
HighlightTextRenderer highlightingRenderer = myObjectListView.GetColumn(0).Renderer as HighlightTextRenderer;
if (highlightingRenderer != null)
highlightingRenderer.Filter = filter;
myObjectListView.ModelFilter = filter;
}
有人能弄清楚为什么这不起作用吗?上面的代码旨在过滤用户在文本框中输入的搜索结果(就像 iTunes 一样,如果您曾经使用过 iTunes)。显然,到目前为止,什么都没有发生。似乎这段代码甚至没有执行。