在ListBox中键入文件名

时间:2012-07-12 02:52:17

标签: vb.net listbox

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

 ability
 idea
 boring
输入“abi”会选择能力,而不是“能力”,然后是“无聊”,然后是“想法”

感谢任何帮助。感谢。

1 个答案:

答案 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)