当我希望键入列表框项目的名称(列表框由目录中的文件填充)时,例如,如果我键入“apples”,按A将带我到第一个对象,其中包含A的名称,但是输入“p”后会将我带到第一个项目,p为第一个字母。我有什么方法可以做到这一点,所以我可以键入几个字符,它会带我到那个特定的项目?例如,列表可能有;
ability
idea
boring
输入“abi”会选择能力,而不是“能力”,然后是“无聊”,然后是“想法”
感谢任何帮助。感谢。
答案 0 :(得分:2)
我认为可以使System.Windows.Forms.ListBox表现得那样,但是需要一些非平凡的代码才能使它工作。 System.Windows.Forms.ListView内置了这种行为,因此我建议使用ListView而不是ListBox。
' Hide the headers to make the ListView look like a ListBox.
Me.ListView1.View = View.Details
Me.ListView1.HeaderStyle = ColumnHeaderStyle.None
Me.ListView1.BeginUpdate()
Try
' System.Windows.Forms.ListView doesn't have data binding capability.
' The listview's items have to be added using its
' Items.Add, Items.AddRange or Items.Insert methods.
For Each filename As String In Directory.GetFiles("C:\Windows").Select(Function(s) Path.GetFileName(s))
Me.ListView1.Items.Add(filename)
Next
Finally
Me.ListView1.EndUpdate()
End Try
' Add the column after adding the items.
' Setting column width to -1 will make
' the column autosize itself to the longest item.
Dim columnHeader As New ColumnHeader
columnHeader.Width = -1
Me.ListView1.Columns.Add(columnHeader)