2016-06-01 5 views
1

Ich bin auf der Suche nach einer Möglichkeit, meine restlichen suggest Anhänge in meiner Combobox zu zählen.vorschlagen Append Count in Combobox (vb.net)

In meinem Beispiel habe ich eine Liste von 7 Artikel

enter image description here

Als ich mit dem vorschlagen Anfügen Funktion mit der Eingabe beginnen, wird diese Liste verengt. Aber ich sehe keine Möglichkeit, diese verbleibenden Anhänge zu zählen.

enter image description here

Was mein Hauptziel ist, ist, dass ich eine Aktion zu tun einmal habe ich nur 1 empfehlen restlichen anhängen.
Aber ich kann nur auf den ausgewählten Index überprüfen, die in diesem Fall immer -1 ist, oder meine Comboboxcount ist immer noch 7. Ich sehe keine Möglichkeit, die restlichen suggest-Anhänge zu zählen.

Irgendeine Idee?

Antwort

0

Angenommen, Ihre Combobox Listitems sind vom String-Typ, dann wird dieser Code das tun. Zuerst sollten Sie eine Liste von Zeichenfolgen mit Combobox-Elementen erstellen. Dann sollten Sie beim keyup-Ereignis der Combobox den Suchtext erstellen, mit dem Sie die Liste filtern und dann zählen. Siehe Code (ich habe auch gerade gezeigt Suchtext um seinen Wert zu sehen):

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 

Wenn Ihr Combobox Listitem von anderem Objekttyp ist, dann müssen Sie die Liste mit Textfeld listitem füllen.

0

Ich hatte die gleiche Grundidee wie Shurki, außer dass ich keine Liste verwendet habe oder den ausgewählten Text durch eine Nulllänge ersetzen würde.

Ich benutze die Selection Eigenschaft des ComboBox einen Teil aus dem Combobox Eigenschaft Text zu bekommen ..

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 
Verwandte Themen