ايران ويج

نسخه‌ی کامل: یه سوال در مورد listbox و combobox
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
من هنوزم متوجه نشدم تو دقیقاً چی می خوای!!!!
می خوای وقتی نوشت A اتومات بنویسه Ali، و Cursor بره ته خط و وقتی دکمه tab زده شد، Ali تبدیل به Amir بشه؟
سلام فرید جان
من تونستم با کمک شما مشکلمو حل کنم اسمو بنیوسم و cursor بره ته خط اما یه مشکلی هست اینکارو با روشی که نوشتم تونستم انجام بدم
کد:
Private Sub text2_Change()
List1.ListIndex = SendMessage(List1.hwnd, LB_FINDSTRING, -1, ByVal text2.Text)
End Sub
Private Sub Timer1_Timer()
KeyResult = GetAsyncKeyState(9)
If KeyResult = -32767 Then
text2.Text = List1.Text
Timer7.Enabled = True
End If
End Sub
Private Sub Timer7_Timer()
Set ws = CreateObject("WScript.Shell")
text2.SetFocus
ws.SendKeys ("{end}")
Timer7.Enabled = False
End Sub
اما متاسفانه مثلا بنیویسی سلام amin دیگه نمیتونه حدس بزنه ولی بنیویسی amin سلام جواب میده یعنی فقط میتونه اول کمبو باکس حروف را مقایسه کنه دیگه وسط کمبو باکس نمیتونه بعد اگر اسم مورن نظر تو لیست باکس نباشه ودکمه tab را بزنی همش پاک میشه هر چزی که تو کمبو باکس باشه
ممنون میشم راهنمایی کنید
خب یه IF بذار که اگه List1.Text="" اون موقع کار نکنه!!!!
کد:
Private Sub Timer1_Timer()
If List1.Text = "" Then Exit Sub
KeyResult = GetAsyncKeyState(9)
If KeyResult = -32767 Then
text2.Text = List1.Text
Timer7.Enabled = True
End If
End Sub
حالا اگر بخواهیم کاری کنیم که اسم را از تو لیست باکس بتونه حدس بزنه بعنی اگر تو کمبو باکس وسطش یا ته خط ( نه اولش اگر نوشتیم امین بتونه حدس بزنه باید واسه اون چکار کرد؟
ممنون میشم راهنمایی کنی
اونو دیگه نمی تونی از API استفاده کنی! باید خودت یه loop بنویسی که دونه دونه item های توی لیست باکس رو با کمک دستور InStr چک کنه.
کاری که می خوای بکنی کار خوبی نیست. در همین حد کافیه. ولی می تونی با چیزی که گفتم بنویسی
سلام
مرحله اصله کاری اینجاست یه راهنمایی کن فرید جان ممنون میشم
توی ویژوال بیسیک تابعی وجود داره به نام Instr، کارش پیدا کردن شباهت بین دو تا متن هستش.
مثال می زنم واست:
کد:
A="salam doostane aziz"
B= "doost"
خب الان B توی A وجود داره!!!! حالا اگه ما بخوایم بفهمیم B کجای A هست از تابع Instr استفاده می کنیم. به این صورت:
کد:
Instr(A,B)
جواب این دستور یه عدده که محل شروع B رو توی A نشون می ده. پس جوابش توی این مثال خاص می شه 7
حالا فرض کن B توی A وجود نداشت. اون موقع این تابع جواب 0 می داد. ما از همین موضوع استفاده می کنیم. اگه جواب این تابع 0 باشه، یعنی B توی A نیست و اگه عددی به جز 0 باشه یعنی B توی A وجود داره.

حالا بر می گردیم به سوالی که پرسیدی. قرار بود یه loop بنویسی و از تابع Instr توش استفاده کنی. کدی که می خوای یه چیزی شبیه اینه:
کد:
For i = 0 To List1.ListCount - 1
    If InStr(combo1.Text, List1.List(i)) <> 0 Then
    
    End If
Next
حالا وسط توی IF می تونی چیزی که می خوای رو بنویسی!!! با استفاده از توضیحاتی که توی پست های قبلی دادم و مخلوط کردنشون می تونی خودت دستوراتی که باید وسط IF بنویسی رو دربیاری
صفحه‌ها: 1 2