نقل قول: جستجو در لیست باکس
باید با حلقه آیتم هارو سرچ کنید
Dim Y, Z As Integer
Z = List1.ListCount
For Y = 0 To List1.ListCount - 1
Z = Z - 1
If InStr(1, List1.List(Z), "امام") = 0 Then List1.RemoveItem Z
Next Y
2 ضمیمه
نقل قول: جستجو در لیست باکس
سلام
بهتر است ابتدا لیست آیتم ها را در آرایه نوشته سپس با یک حلقه در آرایه بدنبال رشته مورد نظر بگردین که در صورت یافتن کلمه، آنرا در لیست اضافه کنه
البته لازم به ذکره که هرچقدر تعداد آیتم ها بیشتر باشد حلقه نیز بیشتر طول خواهد کشید و ممکن است از بهینه بودن برنامه بکاهد، یه پیشنهاد برایتان دارم و آن هم این است که یا دستور جستجو را بجای نوشتن در رویداد change شی textbox در یک دکمه نوشته تا کاربر با نوشتن کلمه مورد نظر بر روی آن کلیک کند و جستجو آغاز شود (یعنی جستجوی دستی بجای خودکار) و یا آنرا در یک تایمر گذاشته که با یک فاصله زمانی معین (مثلا هر 200ms) چک کنه که آیا متن موجود در textbox تغییری کرده است یا خیر و در صورت تغییر کردن متن موجود یکبار جستجو انجام دهد و مجددا منتظر تغییر جدید در جعبه متن بماند که این میتواند بطور موثری مانع از اجرای غیرضروری حلقه و کندی برنامه شود
و هم میتواند بهینه تر از پیشنهاد اول باشد
بهرحال نمونه زیر را براساس روش دوم براتون نوشتم
موفق باشید
یاعلی
نقل قول: جستجو در لیست باکس
نقل قول:
نوشته شده توسط
mohsenvj
سلام
بهتر است ابتدا لیست آیتم ها را در آرایه نوشته سپس با یک حلقه در آرایه بدنبال رشته مورد نظر بگردین که در صورت یافتن کلمه، آنرا در لیست اضافه کنه
البته لازم به ذکره که هرچقدر تعداد آیتم ها بیشتر باشد حلقه نیز بیشتر طول خواهد کشید و ممکن است از بهینه بودن برنامه بکاهد، یه پیشنهاد برایتان دارم و آن هم این است که یا دستور جستجو را بجای نوشتن در رویداد change شی textbox در یک دکمه نوشته تا کاربر با نوشتن کلمه مورد نظر بر روی آن کلیک کند و جستجو آغاز شود (یعنی جستجوی دستی بجای خودکار) و یا آنرا در یک تایمر گذاشته که با یک فاصله زمانی معین (مثلا هر 200ms) چک کنه که آیا متن موجود در textbox تغییری کرده است یا خیر و در صورت تغییر کردن متن موجود یکبار جستجو انجام دهد و مجددا منتظر تغییر جدید در جعبه متن بماند که این میتواند بطور موثری مانع از اجرای غیرضروری حلقه و کندی برنامه شود
و هم میتواند بهینه تر از پیشنهاد اول باشد
بهرحال نمونه زیر را براساس روش دوم براتون نوشتم
موفق باشید
یاعلی
خیلی عالی بود فقط مشکلی که داره اخر لیست یه دونه ایتم خالی میاره هر کاریش کردم نتونستم پاکش کنم
یه مشکل دیگه هم اینه که وقتی فرم را می بندیم باید اون متغیره که اطلاعات داخلش هست کامل پاک بشه اگه کدی برای این کار هم هست برای بزارید
نقل قول: جستجو در لیست باکس
سلام علیکم
نقل قول:
خیلی عالی بود فقط مشکلی که داره اخر لیست یه دونه ایتم خالی میاره هر کاریش کردم نتونستم پاکش کنم
مشکلش رو برطرف کردم و مجددا" گذاشتمش داخلش پست قبلی (3#)
نقل قول:
یه مشکل دیگه هم اینه که وقتی فرم را می بندیم باید اون متغیره که اطلاعات داخلش هست کامل پاک بشه اگه کدی برای این کار هم هست برای بزارید
دقیقا" متوجه منظورتون نشدم، اگه میشه کمی بیشتر راجع بهش توضیح بدین
موفق باشید
نقل قول: جستجو در لیست باکس
ببین فکر کن من میخوام اولی که فرم لود میشه اون آرایه کامل پاک بشه از چه کدی باید استفاده کنم
نقل قول: جستجو در لیست باکس
درسته
نمونه ای که بنده گذاشته ام از یک آرایه ثابت استفاده میکنه اما شما میتوانید مقدار ثابت اونو (فکر کنم 15 بود) را حذف کرده سپس در زمان اجرا از دستور Redim طول اونو تعیین کنین به عبارتی طولش رو پویا کنین
در این صورت میتوانید یک فایل که حاوی لغات مورد نظر را هر تعداد که باشید در آرایه قرار دهید
نمونه زیر رو ببینین
Dim myData$()
Private Sub Form_Load()
ReDim myData$(10)
End Sub
مشکلی بود در خدمتیم
موفق باشید