请提前原谅我这些凌乱的代码,因为我还在学习。但是从下面的屏幕截图我有一个搜索字段,列表框和一些伪数据(不是实际数据,因为它是敏感的)
我目前处理搜索的方式是,如果值是完全匹配,则在子字符串中,搜索字段从白色转换为绿色。我一直在尝试做的是,当发生这种情况时,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
欢迎任何关于这篇文章或我的代码的批评,这是我将要学习的唯一方式。
答案 0 :(得分:1)
我认为你应该使用BringIntoView()
方法。
在C#中,我会这样做:
1)从ListBoxItem
SelectedItem
ListBoxItem selectedListBoxItem = lstLine.ItemContainerGenerator.ContainerFromItem(lstLine.SelectedItem) as ListBoxItem;
2)然后将所选项目带入视图:
selectedListBoxItem.BringIntoView();