我正在寻找一种方法来计算我的剩余建议,并将其添加到我的组合框中。
在我的例子中,我有一个包含7个项目的列表
当我开始使用建议追加功能键入时,此列表会变窄。但我没有看到任何可能计算这些剩余的附加物。
我的主要目标是,一旦我只有1个建议追加剩余,我就会采取行动 但是我只能检查selectedindex,在这种情况下总是-1,或者我的comboboxcount仍然是7.我没有看到计算剩余建议附加的方法。
有什么想法吗?
答案 0 :(得分:0)
假设您的组合框列表项是字符串类型,那么此代码将执行此操作。首先,您应该创建一个包含组合框项目的字符串列表。然后在组合框的keyup事件上你应该创建用于过滤列表然后计数的searchtext。请参阅下面的代码(我还显示了searchtext以查看其值):
Dim lst As New List(Of String)
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each it In ComboBox1.Items
lst.Add(it)
Next
End Sub
Private Sub ComboBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles ComboBox1.KeyUp
Dim seltext = ComboBox1.SelectedText
Dim searchtext = ""
If seltext <> "" Then
searchtext = ComboBox1.Text.ToLower.Replace(seltext, "")
Else
searchtext = ComboBox1.Text.ToLower
End If
Label1.Text = lst.Where(Function(d) d.ToLower.StartsWith(searchtext)).Count & " - " & searchtext
End Sub
如果您的组合框列表项具有不同的对象类型,则必须使用listitem的文本字段填充列表。
答案 1 :(得分:0)
我有与Shurki相同的基本想法,除了我没有使用列表或用零长度字符串替换所选文本。
我使用ComboBox的SelectionStart属性从ComboBox的Text属性中获取子字符串。
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
ComboBox1.Items.Add("Candy")
ComboBox1.Items.Add("Car")
ComboBox1.Items.Add("Crush")
ComboBox1.Items.Add("Canned")
ComboBox1.Items.Add("Can")
End Sub
Private Sub ComboBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles ComboBox1.KeyUp
Dim query As IEnumerable(Of Object) =
From item As Object In ComboBox1.Items
Where item.ToString().ToUpper().StartsWith(ComboBox1.Text.Substring(0, ComboBox1.SelectionStart).ToUpper())
Select item
Debug.WriteLine("Number of items: " & query.Count())
End Sub
End Class