سلام
به قول یکی از بروبچ خواهشم دارم، خداحافظ شما، سلام علیکم!!!
ComboBox ها و TextBox های دات نت مجهز به سه Property مخصوص همین مسئله هستند. (و دو عدد هم به طور غیر مستقیم برای این منظور هم کمک میکنند).
- 1 - اولی AutoCompleteMode است که چگونگی این عمل را مشخص میسازد. و چهار نوع را می پذیرد
SuggestAppend
Append
Suggest
None
مثلاَ اینکه کلاَ لغت را خودش تایپ کند یا قسمت بعدی را که حدس زده تایپ کند ولی Select شده باشد(مثل Excel) و .... که گزینه مطلوب مورد نظر شما SuggestAppend است
- 2 - دومی AutoCompleteSource است که منبع را مشخص میکند و 9 قسم دارد
مثلاَ اینکه حالت Recent باشد و بر اساس آخرین چیزهایی که کاربر وارد کرده را نشان دهد (مثل کادر جستجوی ویندوز) یا اینکه منبع یک ستون از یک جدول یک بانک اطلاعاتی (برای اتصال به DataSet ها) و...
از این 9 مقدار دو تا مهم تر هستند.
مقدار ListItems موجب میشود این قابلیت لیست خود را به طور مستقیم از لیست اصلی ComboBox تغزیه کند که در این حالت این لیست همان لیستی خواهد بود که با کلیک کردن دکمه کامبو نشان داده خواهد شد.
مقدار CustomSource موجب میشود بتوانید لغات مورد نظر را به طور مستقیم (حتی در پنجره Properties در زمان طراحی برنامه) وارد کنید و در اصل Property سوم (- 3 -) را فعال میکند، وگرنه هرچه با Property سوم (- 3 -) وارد کرده باشید نادیده گرفته میشود.
- 3 - سومی AutoCompleteCustomSource است و برای کارکردنش همانطور که گفتم باید x.AutoCompleteSource=CustomSource چنین باشد.
این گزینه در زمان طراحی هم در دسترس است و میتوانید لغات خود را از طریق پنجره Properties و انتخاب ComboBox و کلیک روی این خصوصیت، وارد کنید.
- 4 - چهارمی که البته مخصوص اینکار نیست، DataSource است که منبع را برای خود محتویات گزینه های ComboBox مشخص میکند ولی همانطور که گفتم اگر x.AutoCompleteSource=ListItems آنگاه این آیتم منبع AutoComplete را نیز تایین میکند.
- 5 - آخرین خصوصیت که برای کمک به DataSource در تایین محل دقیق داده ها است DisplayMember است که در مواقعی که مثلا DataSource به یک جدول اشاره میکند DisplayMember به ستون خاصی از آن جدول اشاره میکند تا فقط یک رنج داده داشته باشیم.
(البته در VB6 هم تا حدودی این دو خصوصیت آخر بود)
در نتیجه گزینه های زیادی در دسترس است (همانطور که قبلاَ هم گفته ام Framework بسیار عظیم است!)
پس اگر فرض کنیم لیست شما ثابت است در نتیجه شما نیاز به کدی شبیه این دارید. (البته کل این دستورات را میتوانید از طریق پنجره Properties و بدون دخالت و کد نویسی مستقیم انجام دهید)
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و یا کد زیر که در این حالت لیست اصلی ComboBox با لیست AutoComplete تلفیق می شود.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
پایان عملیات اغفال سازی!
خوب بید!

اغفال شدی تا دست از سر VB6 درپیت برداری؟