VB Studio ListBox滚动条位置

时间:2016-02-18 05:43:37

标签: vb.net listbox

也许有更好的解决方案,但是......

我使用listbox选择多个项目,但该列表按字母顺序包含800多个项目。如果我选择三个项目,例如“苹果”,“橘子”和“西葫芦”,我必须向下拉scrollbar或使用鼠标滚轮滚动列表。

有没有办法“跳转”到列表中的某个位置以减少所需的滚动?例如,如果我的“D”为button,则滚动列表会跳转到以“D”开头的项目。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

这应该可以根据需要使用。

第二行搜索列表框,找到以您按下的键开头的第一个项目。如果没有Items以该字母开头,则FindString函数返回-1或与ListBox.NoMatches相同(这是一个已在Visual Studio中定义的常量,以使代码更具可读性)

我已将代码放入一个单独的子代码中,以便可以将其重新应用于任何列表框。

Private Sub ListBox1_KeyDown(sender As Object, e As KeyEventArgs) Handles ListBox1.KeyDown
    Dim key As String = Chr(e.KeyValue).ToString
    SelectlistBoxItemFromKey(ListBox1, key)
End Sub

Private Sub SelectlistBoxItemFromKey(ByRef lBox As ListBox, k As String)
    Dim index As Integer = lBox.FindString(k)
    If index > ListBox.NoMatches Then
        lBox.SelectedIndex = index - 1
    End If
End Sub