PDA

View Full Version : سوال: جستجو در ComboBox بر اساس داده های در آیتم های آن



MasoudAdmin
جمعه 16 مهر 1400, 18:53 عصر
با سلام
من یک ComboBox دارم که دیتای اون رو از دیتابیس خوندم و آیتم هاش رو پر کردم. حالا می خوام وقتی کاربر یک حرف یا کلمه ای رو میزنه بره داخلش هر چی شبیه اون هست رو بیاره. مثلا فکر کنید نام و نام خانوادگی رو در آیتم های آن ریختم. حالا می خوام بر اساس اون چیزی که وارد کردم نتیجه رو نمایش بده.
مثلا وقتی میزنم "محم" رو در ComboBox وارد کرد، هر چیزی که شبیه "محم" رو هست در لیست ComboBox رو نمایش بده.
مثلا
محمد رضایی
محمود رمضانی
علی محمودی

البته نمی خوام از خاصیت های SuggestAppend=AutoCompeleteMode و ListItem=AutoCompeleteSource استفاده کنم.
امیدوارم منظورم رو متوجه شده باشید.
ممنون میشم کمک کنید.

hamidrezax1
جمعه 16 مهر 1400, 19:21 عصر
دوست عزیز شما میتونید از خاصیت TextChanged کمبو باکستون استفاده کنید و بر اساس تغیر توسط کاربر اطلاعات رو فراخوانی کنید
مثلا بهش کاراکتر بدین که وقتی بیش از سه حرف تایپ کرد با هر بار تایپ جدید کمبوباکس اطلاعاتش اولیه اش حذف و سپس جستجو کنه و اطلاعات جدید رو نمایش بده همینجور تا آخر
موفق باشید

MasoudAdmin
جمعه 16 مهر 1400, 20:44 عصر
سلام
همین کار رو کردم.منتهی از دیتابیس مستقیم Select میزدم ولی به درستی کار نکرد. همین که حرف اول رو می زنم کار میکنه و واسه حرف های بعدی کار نمیکنه. دائم از حرف اول شروع میکنه!

mmbguide
شنبه 17 مهر 1400, 12:15 عصر
سلام

پیشنهاد میکنم یکبار که اطلاعات رو از بانک گرفتید اطلاعات را در یک bindingsource قرار بدید و از متد find برای جستجو استفاده کنید.

MasoudAdmin
شنبه 17 مهر 1400, 18:14 عصر
سلام. میشه بیشتر توضیح بدید یا اگر نمونه کدی دارید بگذارید؟ ممنون

mmbguide
شنبه 17 مهر 1400, 20:17 عصر
زحمت نمونه کد با خودتون و در اینترنت سرچ کنید نمونه زیاد پیدا میکنید.

ببینید شما باید بعد از دریافت اطلاعات داده های خودتون را در یک DataTable قرار بدید و پس از اون DataTable را به یک BindingSource متصل کنید و در DataSource کنترل مورد نظر (Combobox, DataGridView و...) شیء BindingSource را تنظیم کنید. BindingSourceها چند دستور پرکاربرد دارند که میتونه بدردتون بخوره: Next, Last, Previous, First, Position, Find, Filter