PDA

View Full Version : حرفه ای: intellisence در textbox



mhm610
پنج شنبه 14 بهمن 1389, 12:15 عصر
با سلام خدمت همه دوستان عزیر
من در مورد استفاده از textbox می خواستم که امکان نمایش لیست داده های مشابه (intellisence) ایجاد کنم.
ممنون می شم اگر در این زمینه اطلاعاتی دارین به من کمک کنین.

system32
پنج شنبه 14 بهمن 1389, 13:01 عصر
سلام دوست عزیز:



string[] str = { "12345", "23456", "34567" };

textBox1.AutoCompleteCustomSource.AddRange(str);

textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;

textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;


در ضمن شکل درست آن Intellisense است. این عبارت به معنای تکمیل خودکار محتویات کنترل ها می باشد.

merlin425
چهارشنبه 24 اسفند 1390, 20:34 عصر
میشه یکم بیشتر این کد رو توضیح بدی متد هایی که از textbox تو این کد استفاده کردی رو نمیشناسم ولی فکر میکنم موقع تایپ توی ارایه می کرده و شبیه ترین عنصر رو میاره

asadegha
پنج شنبه 25 اسفند 1390, 00:20 صبح
گاهی اوقات توی برنامه لازمه که وقتی توی تکست باکس حرفی رو تایپ میکنی، خودش یه سری اطلاعات رو ف.ی.ل.ت.ر کنه و یه لیست فیلتر شده رو نمایش بده. مثل وقتی که توی آدرس بار تایپ میکنی مثلا C:\ برات یه لیست باز میکنه که اول آدرسش با C:\ شروع میشه.

برای اینکه توی برنامه شما این امکان رو اضافه کنی، اول باید ببینی که از کدوم منبع می خوای این اطلاعات لیست بشه برات.

AutoCompleteSource تعیین میکنه از کدوم منبع نمایش بده و این منابع شامل:
FileSystem: آدرس فایل ها و درایو های کامپیوتر(مثل همینی که توی آدرس بار مینویسی)
HistoryList: از History کامپیوتر
RecentlyUsedList: از Recent کامپیوتر(فایل ها و برنامه هایی که اخیرا استفاده شده)
AllUrl: آدرس های اینترنتی و فایلها و درایو ها(همه آدرس ها)
AllSystemSources: تمامی منابع سیستم
FileSystemDirectories: پوشه های سیستم
CustomSource: منابعی که خودمون به صورت دستی تعیین میکنیم.
None: هیچکدام
ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ــــــ
خوب، تا اینجا توی برنامه شما احتمالا از فایل ها، پوشه ها، آدرس ها و بقیه منابع سیستم نمی خوایم استفاده کنیم. پس خاصیت AutoCompleteSource رو روی CustomSource تنظیم میکنیم.

یعنی:
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;

و برای تعیین mode برای نمایش این مقادیر فیلتر شده از خاصیت AutoCompleteMode استفاده میکنیم و شامل موارد زیره:
Append: حرف اول رو تایپ میکنی، و بقیه رو به صورت select شده در ادامه حرفی که تایپ کردی نشون میده.
Suggest: یه لیست باز میکنه و itemهای موجود رو نمایش میده.
SuggestAppend: هر دو کار رو با هم انجام میده.
None: هیچکدام

یعنی:
textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــــــــــــــــــــــــ ـــ

حالا مقادیری که خودمون می خوایم نمایش بده چیه؟ برنامه از کجا باید بفهمه که این مقادیر و آیتم ها چی هستن؟ مثلا اسم اشخاصه؟ سال شمسی یا میلادیه؟ یا یه چیز دیگه؟
پس آیتم هایی که می خوایم نمایش بده رو خودمون به صورت دستی باید بهش بدیم.

یه خاصیتی اینجا وجود داره به اسم AutoCompleteCustomSource شامل لیستی از آیتم های مورد نظر ماست. و خودمون به صورت دستی باید بهش مقدار بدیم.
میتونیم اگه این مقادیر ثابته و هیچ وقت قرار نیست کم و زیاد بشه مستقیما در پنجره Properties مقادیر رو وارد کنیم.
و اگه قراره با کد نویسی آیتم ها رو به این خاصیت اضافه کنیم یه صورت زیر عمل میکنیم:

اضافه کردن یک مقداری:
textBox1.AutoCompleteCustomSource.Add( string Value );

اضافه کردن چند مقداری(یعنی همه عناصر یک آرایه رو خودش اضافه میکنه. اگه آرایه ده عنصری باشه و بخوایم از دستور بالا استفاده کنیم باید ده بار دستور بالا اجرا بشه. ولی با دستور، فقط یکبار اجرا میشه و طول آرایه مهم نیست. هرچی باشه اضافه میکنه.):

string[] str = { "12345", "23456", "34567" };

textBox1.AutoCompleteCustomSource.AddRange(str);