0

当我希望输入列表框项目的名称时(列表框由目录中的文件填充),例如,如果我输入“apples”,按 A 会将我带到名称中包含 A 的第一个对象,但输入“ p" 之后将带我到第一个以 p 作为第一个字母的项目。有什么办法可以让我输入几个字符,然后它会带我到那个特定的项目?例如,列表可能有;

 ability
 idea
 boring

输入“abi”将选择能力,而不是“能力”,然后是“无聊”,然后是“想法”

任何帮助表示赞赏。谢谢。

4

1 回答 1

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)
于 2012-07-12T06:00:26.513 回答