PDA

View Full Version : جستجو در ListBox



alizanganeh
سه شنبه 17 مرداد 1391, 17:11 عصر
سلام دوستان

میخوام بدونم حلقه ی for رو چطوری باید بنویسم که با اون بتونم توی یک listbox جستجو کنم

مثلا ببینیم که آِیا توی این لیست باکس گزینه ی "ALI" هستش یا نه و اگر بود listindex رو بگیرم

ممنون

arenaw
سه شنبه 17 مرداد 1391, 17:40 عصر
سلام
Dim i As Integer, Srch As Integer
Srch = -1
For i = 0 To List1.ListCount - 1
If List1.List(i) = "ALI" Then Srch = i: Exit For
Next
MsgBox Srch

متغیر Srch میشه ایندکس اولین کلمه ی علی توی لیست (اگه -1 بود یعنی پیدا نکرده چیزی)

محسن واژدی
سه شنبه 17 مرداد 1391, 18:43 عصر
سلام علیکم
در مورد ListBoxهای بزرگ میتوانیم از apiی زیر استفاده کنیم
کد زیر را در ماژول کد یا فرم کپی کنید: Private Const LB_FINDSTRING = &H18F
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Integer, ByVal wParam As Integer, lParam As Any) As Long


Public Function ListBoxFind(lListBox As ListBox, sTargetStr$, Optional lStartIndex& = -1) As Long
ListBoxFind = SendMessage(lListBox.hWnd, LB_FINDSTRING, lStartIndex&, ByVal sTargetStr$)
End Function


برای مثال: Private Sub Command2_Click()
MsgBox ListBoxFind(List1, "Ali")
End Sub


موفق باشید