Solved

Possible to search through a listbox?

Posted on 2007-11-21
8
168 Views
Last Modified: 2010-04-23
I was wondering, i have a textfield and a listbox.

I want to search this listbox, but not from the first letter. This is becouse i have the Customer ID first, and the user should be able to write in f.eks Jimbo in the textfield, and the listbox automatically jumps down to jimbo EVEN though in the listbox it said "12 Jimbo" where 12 is the customer ID

I have a code for finding the name without the customer ID in front, but it doesnt work when i use the customer ID

Anyone have an idea?
Dim i As Integer = Me.listkunde.FindString(Me.txtkundesok.Text)
 

   

        Me.listkunde.SelectedIndex = i

Open in new window

0
Comment
Question by:leeds2000
  • 4
  • 4
8 Comments
 
LVL 16

Expert Comment

by:gnoon
ID: 20332094
You may need to create you own FindString() function.
Function FindString(ByVal list As ListControl, ByVal searchText As String) As Integer

	Dim i As Integer

	For i=0 To list.Items.Count-1

		If list.Items(i).ToString().IndexOf(searchText) Then Return i

	Next

	Return -1

End Function

Open in new window

0
 
LVL 3

Author Comment

by:leeds2000
ID: 20332101
Ugh, i really stink at functions, how do i now place this inside a button :)
0
 
LVL 16

Expert Comment

by:gnoon
ID: 20332130
Place it in you class, then call it from another function.
Sub button1_Click(sender As Bbject, e As EventArgs)

	listkunde.SelectedIndex = FindString(listkunde, txtkundesok.Text)

End Sub

Open in new window

0
 
LVL 3

Author Comment

by:leeds2000
ID: 20332153
It only picks the top name, even i write f.eks "Jimbo" in the textfield: and there is a name called jimbo in the list (12 Jimbo Jumbo 98764556) last one is phone number and first number is customer ID

i placed my code in the

    Private Sub txtkundesok_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtkundesok.TextChanged

so it would search when i write, but he only marks the top, and doesnt seem to find anything
0
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 
LVL 16

Accepted Solution

by:
gnoon earned 500 total points
ID: 20332460
If the input is 'f.eks Jimbo', the code above will use the all letters to search an item. So, nothing's found.
You need to split the search text and find for each 'f.eks' or 'Jimbo'.
Function FindString(ByVal list As ListControl, ByVal searchText As String) As Integer

	Dim i As Integer

	For i=0 To list.Items.Count-1

		If list.Items(i).ToString().ToLower().IndexOf(searchText.ToLower()) Then Return i

	Next

	Return -1

End Function
 

Private Sub txtkundesok_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtkundesok.TextChanged

	Dim split As String() = txtkundesok.Text.Split(New [Char]() {" "c})
 

	Dim i As Integer = -1

	Dim s As String

	For Each s In split

		If s.Trim() <> "" Then

			i = FindString(listkunde, s)

			If i <> -1 Then Exit For

		End If

	Next s
 

	If i <> -1 Then

		listkunde.SetSelected(i, true)

	Else

		listkunde.SelectedIndex = -1

	End If

End Sub

Open in new window

0
 
LVL 3

Author Comment

by:leeds2000
ID: 20333524
It still just selects the top name when trying to search for "jimbo" which in middle, no search seems to work.

I did manage to get the search to mark the second line though when i wrote the number "1" but thats about it.

I dont understand why the search aint working :/
0
 
LVL 16

Assisted Solution

by:gnoon
gnoon earned 500 total points
ID: 20333687
I'm sorry leeds2000. The FindString should be below code.
    Function FindString(ByVal list As ListBox, ByVal searchText As String) As Integer

        Dim i As Integer

        For i = 0 To list.Items.Count - 1

            If list.Items(i).ToString().ToLower().IndexOf(searchText.ToLower()) <> -1 Then Return i

        Next

        Return -1

    End Function

Open in new window

0
 
LVL 3

Author Comment

by:leeds2000
ID: 20333708
Thanks, worked great :D
0

Featured Post

Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

Join & Write a Comment

I think the Typed DataTable and Typed DataSet are very good options when working with data, but I don't like auto-generated code. First, I create an Abstract Class for my DataTables Common Code.  This class Inherits from DataTable. Also, it can …
Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now