列表框搜索功能

时间:2017-02-27 09:02:40

标签: wpf vb.net visual-studio

请提前原谅我这些凌乱的代码,因为我还在学习。但是从下面的屏幕截图我有一个搜索字段,列表框和一些伪数据(不是实际数据,因为它是敏感的)

Screen Shot of Controls

我目前处理搜索的方式是,如果值是完全匹配,则在子字符串中,搜索字段从白色转换为绿色。我一直在尝试做的是,当发生这种情况时,lstBox控件将选择它所执行的行,但它不会滚动到该行所在的点。

我的邋code代码如下:

Sub searchRecord()
    If txtSearch.Text <> "" And txtSearch.Text.Length = 10 Then
        For i As Integer = 0 To lstLine.Items.Count - 1
            If lstLine.Items(i).ToUpper.Substring(0, 10).Contains(txtSearch.Text.ToUpper) Then
                lstLine.SelectedIndex = i
                setSearch("#FF33BD48")
                Exit For
            Else
                setSearch("#d31d1d")
            End If
        Next
    Else
        setSearch("#ffffff")
    End If
End Sub

欢迎任何关于这篇文章或我的代码的批评,这是我将要学习的唯一方式。

1 个答案:

答案 0 :(得分:1)

我认为你应该使用BringIntoView()方法。 在C#中,我会这样做:

1)从ListBoxItem

获取SelectedItem
ListBoxItem selectedListBoxItem = lstLine.ItemContainerGenerator.ContainerFromItem(lstLine.SelectedItem) as ListBoxItem;

2)然后将所选项目带入视图:

selectedListBoxItem.BringIntoView();