PDA

View Full Version : سوال: جستجوی خطی در ListBox



IranVisual
دوشنبه 22 مهر 1387, 09:41 صبح
میخوام وقتی یه حرفی توی textbox وارد شد معادل اون حرف توی ListBox انتخاب بشه
جستجو کردم ولی چیزی که به کارم بیاد نتونستم پیدا کنم

mostafaaa
دوشنبه 22 مهر 1387, 11:39 صبح
سلام

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Me.ListBox1.SelectedItem = Me.TextBox1.Text
End Sub

IranVisual
سه شنبه 23 مهر 1387, 08:57 صبح
این کد جواب نمیده دوست عزیز
میخوام جستجوم خطی باشه

mostafaaa
سه شنبه 23 مهر 1387, 09:16 صبح
والا تا اونجایی که من میدونم جستجوی خطی به این میگن که تمام آیتمها یکی بعد از دیگری مقایسه بشن، که در واقع کد بالا نیز همین کار رو میکنه. تنها اشکال کد بالا اینه که بین حروف بزرگ و کوچیک تفاوت قایل میشه که اونم به راحتی با یه کد مثل این حل میشه.

For Each Item As String In Me.ListBox1.Items
If Me.TextBox1.Text.Equals(Item, StringComparison.CurrentCultureIgnoreCase) Then
Me.ListBox1.SelectedItem = Item
Exit Sub
End If
Next

IranVisual
سه شنبه 23 مهر 1387, 11:26 صبح
منظور من اینه که وقتی یک حرف رو وارد کردی مثلا هر وقت " م " رو زدیم توی لیست باکس اونی که اولش " م " داره انتخاب بشه

rooshan2008
سه شنبه 23 مهر 1387, 11:47 صبح
سلام
با کسب اجازه از دوست عزیز آقا mostafaaa

فکر کنم دنبال این می گردی






For i = 0 To ListBox1.Items.Count - 1
If InStr(ListBox1.Items(i), TextBox1.Text) = 1 Then
ListBox1.SelectedIndex = i
ExitFor
Else
ListBox1.SelectedIndex = -1
EndIf
Next


قبلی هم درست بود ولی این طوری هم میشه نگو این هم خطا داد .....
راستی یه Textbox1 داخل صفحه بزار وجمله مورد جستجوت رو داخل اون بنویس

IranVisual
سه شنبه 23 مهر 1387, 11:53 صبح
این چیه S_item خطا میگی ره

rooshan2008
سه شنبه 23 مهر 1387, 12:06 عصر
کد قبلی رو اصلاح کردم......

IranVisual
سه شنبه 23 مهر 1387, 17:28 عصر
روی این خط

If InStr(ListBox1.Items(i), TextBox1.Text) = 1 Then

این error رو میده

Conversion from type 'DataRowView' to type 'String' is not valid.

rooshan2008
سه شنبه 23 مهر 1387, 17:47 عصر
شما مطمئن هستید که از Listbox استفاده کردین شما احتمالاً از DataGridview استفاده نکردید؟؟؟؟؟؟؟؟؟؟

mostafaaa
سه شنبه 23 مهر 1387, 18:11 عصر
دوست من اگه از اول سوالت رو کامل میپرسیدی زودتر به جواب میرسیدی.

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
For Each Item As String In Me.ListBox1.Items
If Strings.InStr(Item, Me.TextBox1.Text, CompareMethod.Text) Then
Me.ListBox1.SelectedItem = Item
Exit Sub
End If
Next
End Sub