当我希望输入列表框项目的名称时(列表框由目录中的文件填充),例如,如果我输入“apples”,按 A 会将我带到名称中包含 A 的第一个对象,但输入“ p" 之后将带我到第一个以 p 作为第一个字母的项目。有什么办法可以让我输入几个字符,然后它会带我到那个特定的项目?例如,列表可能有;
ability
idea
boring
输入“abi”将选择能力,而不是“能力”,然后是“无聊”,然后是“想法”
任何帮助表示赞赏。谢谢。
我认为可以使 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)