PDA

View Full Version : سرچ در لیست باکس



mahdi.a.v
چهارشنبه 21 فروردین 1392, 13:14 عصر
سلام
این سوالم تکراری نیست چون من میخوام رشته ای که کاربر میده رو در لیست باکس سرچ کنه
اما نمیخوام عین کلمه سرچ بشه
مثلا اگه کاربر "VB" رو سرچ کرد اگه توی لیسن باکس "VB.NET" هم بود بازم بهمون نشون بده
ممنون

Mani_rf
چهارشنبه 21 فروردین 1392, 13:32 عصر
با این کد میتونی این کار رو به همین راحتی انجام بدی :
For i = 0 To List.Items.Count - 1
If List.Items(i).ToString.ToLower.IndexOf("VB".ToLower) => 0 Then
MsgBox("Item Found in index " & i + 1)
End If
Next

mahdi.a.v
چهارشنبه 21 فروردین 1392, 15:37 عصر
ممنون
میشه بگید چه جوری نتیجه رو تو یه لیست دیگه اد کنم ؟

maxvel
جمعه 23 فروردین 1392, 02:27 صبح
بفرمایید

فکر کنم همونی باشه که میخوای

102678

در صورت مقید نشدن همینجا ذکر کنید

Moslem_Pc
یک شنبه 25 فروردین 1392, 13:13 عصر
با اجازه اساتید محترم
فکر میکنم درک این کد برای کاربران راحت تر باشه
این کد تک تک آیتم هایی که پیدا میکنه رو پشت سر هم تو مسج باکس نشون میده
For Each found As Integer In ListBox1.Items
If found.ToString.Contains("VB") Then
MsgBox(found)
End If
Next

این کد هم فقط تعداد آیتم های یافته شده رو تو یه مسج باکس نشون میده
Dim a As Integer
For Each found As Integer In ListBox1.Items
If found.ToString.Contains("VB") Then
a = a + 1
End If
Next
MsgBox(a)

اگه مشکلی بود در خدمتم:لبخندساده:

zahedi121
یک شنبه 25 فروردین 1392, 14:51 عصر
با اجازه اساتید محترم
فکر میکنم درک این کد برای کاربران راحت تر باشه
این کد تک تک آیتم هایی که پیدا میکنه رو پشت سر هم تو مسج باکس نشون میده
For Each found As Integer In ListBox1.Items
If found.ToString.Contains("VB") Then
MsgBox(found)
End If
Next

این کد هم فقط تعداد آیتم های یافته شده رو تو یه مسج باکس نشون میده
Dim a As Integer
For Each found As Integer In ListBox1.Items
If found.ToString.Contains("VB") Then
a = a + 1
End If
Next
MsgBox(a)

اگه مشکلی بود در خدمتم:لبخندساده:
سلام دوست عزیز

وقتی در لیست باکس دنبال رشته میگردید حتما آیتمهای لیست باکس رشته هم دارند پس متغیر found نباید integer باشه.
در قسمت بعدی هم چون شرط کوچک و بزرگ بودن رشته را قرار ندادید ، قسمتی از نتایج نشان داده نمی شود. ( vb.net جستجو نمیشود)
به هر حال فکر میکنم کد Mani_rf بهتر باشد.
موفق باشید

Moslem_Pc
یک شنبه 25 فروردین 1392, 17:32 عصر
سلام دوست عزیز

وقتی در لیست باکس دنبال رشته میگردید حتما آیتمهای لیست باکس رشته هم دارند پس متغیر found نباید integer باشه.
در قسمت بعدی هم چون شرط کوچک و بزرگ بودن رشته را قرار ندادید ، قسمتی از نتایج نشان داده نمی شود. ( vb.net جستجو نمیشود)
به هر حال فکر میکنم کد Mani_rf بهتر باشد.
موفق باشید
تو قسمت اول کاملا حق با شماست، من اصلا حواسم به این موضوع نبود. بابت تذکر ممنونم
اما قسمت دوم رو متوجه نشدم، ممکنه با ذکر نمونه کد کمی بیشتر توضیح بدید؟
با تشکر:لبخندساده:

zahedi121
یک شنبه 25 فروردین 1392, 23:13 عصر
تو قسمت اول کاملا حق با شماست، من اصلا حواسم به این موضوع نبود. بابت تذکر ممنونم
اما قسمت دوم رو متوجه نشدم، ممکنه با ذکر نمونه کد کمی بیشتر توضیح بدید؟
با تشکر:لبخندساده:
سلام
کد شما VB.net و VB.NET را پیدا میکنه ولی vb.net و vb.NET را پیدا نمیکنه. خلاصه اینکه برای جستجو انگلیسی مثل کدی که Mani_rf گذاشتند بهتر است ابتدا تمام حروف را کوچک - یا بزرگ - بکنیم و بعد دنبال رشته مورد نظر بگردیم.
پیروز و موفق باشید:لبخندساده:

tooraj_azizi_1035
سه شنبه 27 فروردین 1392, 13:15 عصر
Dim hits = From item In listBox1.Items.Cast(Of String)()
Where item.IndexOf(txtSearch.Text, StringComparison.OrdinalIgnoreCase) >= 0
If hits.Any Then
listBox1.Items.AddRange(hints.ToArray())
End If

Moslem_Pc
سه شنبه 27 فروردین 1392, 22:38 عصر
سلام
کد شما VB.net و VB.NET را پیدا میکنه ولی vb.net و vb.NET را پیدا نمیکنه. خلاصه اینکه برای جستجو انگلیسی مثل کدی که Mani_rf گذاشتند بهتر است ابتدا تمام حروف را کوچک - یا بزرگ - بکنیم و بعد دنبال رشته مورد نظر بگردیم.
پیروز و موفق باشید:لبخندساده:

بله جناب زاهدی شما کاملا درست میفرمودید. ممنون بابت راهنمایی :لبخندساده:

ghayour
جمعه 21 تیر 1392, 22:55 عصر
سلام
من هرچی گشتم نتونستم کدی رو که می‌خوام پیدا کنم!
می‌خوام وقتی لیست باکس جستجو میشه بقیه آیتم‌ها پاک بشه و فقط آیتم‌هایی که اون حرف یا کلمه رو دارن بمونن! (نه فقط حرف اول بلکه هر جای کلمه یا عبارت بود.)
تقریبا کدی که "tooraj_azizi_1035" نوشتن همون چیزیه که من می‌خوام و درون TextChanged تکست باکس قرار میدم؛ اما دوتا مشکل داره:
اول اینکه رکوردهای قبلی پاک نمیشن!
دوم اینکه وقتی تعداد حروف بیشتر از یکی میشه چندبار جستجو رو انجام میده!

ghayour
شنبه 05 مرداد 1392, 04:50 صبح
دو هفته گذشت اما هنوز کسی جواب نداده!
لطفا اگه تکراریه حداقل لینکشو بدین!!!!

Mani_rf
یک شنبه 06 مرداد 1392, 08:49 صبح
به شرط اون کدی که من نوشتم یک Else اضافه کن و توش اون آیم رو ریمو کن.
(List.RemoveAt(i

ghayour
یک شنبه 06 مرداد 1392, 14:35 عصر
نشد!

http://asianwiki.tk/VB/vbSearch.PNG

نمی‌دونم چرا این خطا رو میده؟؟

اگه Try هم بذارم که خطا نده باز هم درست جستجو نمی‌کنه!

اگر این خط رو هم ننویسم باز هم درست جستجو نمی‌کنه:
lstWords.Items.Add(i + 1)

همچنین می‌خوام با پاک کردن کلمه هم جستجو کنه که اینطور نیست!

Mani_rf
سه شنبه 08 مرداد 1392, 23:31 عصر
پروژه رو آپلود کن ببینمش